Vernonproject

Frappe App for Project Management

Install Vernonproject

bench get-app https://github.com/erickmo/VernonProject

Add the Frappe Gems badge to your README

Maintain Vernonproject? Paste this into your README:

[![Listed on Frappe Gems](https://frappegems.com/api/method/frappe_gems.seo.badge?app=erickmo%2FVernonProject)](https://frappegems.com/gems/apps/erickmo/VernonProject)

About Vernonproject

Vernon Project

Aplikasi manajemen proyek berbasis Frappe Framework untuk mengelola proyek, tugas, tim, dan progres pekerjaan dengan sistem workflow yang terstruktur.

Daftar Isi

Fitur Utama

  • Manajemen Proyek: Kelola multiple proyek dengan customer, timeline, dan tim yang berbeda
  • Project Grouping: Organisasi proyek dalam struktur hierarki menggunakan Project Group
  • Project Details: Breakdown proyek menjadi detail-detail pekerjaan dengan estimasi dan pricing
  • Todo Management: Sistem todo dengan workflow status (Planned → Done → Checked By PL → Completed)
  • Team Management: Kelola tim proyek dengan role Project Owner, Project Leader, dan Team Members
  • Glossary System: Definisi istilah dan pengelompokan project detail
  • Progress Tracking: Monitor progres pekerjaan dengan estimasi waktu dan deadline
  • Permission System: Sistem permission berbasis role dengan akses terbatas per project team
  • Reporting: Berbagai laporan untuk monitoring todo, progress, dan deadline
  • Mobile App (PWA): Aplikasi mobile modern berbasis React untuk penggunaan harian (lihat di bawah)

Mobile App (PWA)

Tersedia aplikasi mobile (Progressive Web App) yang bisa di-install ke home screen, dibangun dengan React + Vite + Tailwind dan dilayani Frappe di route /m. Dioptimalkan untuk pemakaian harian tim: melihat tugas hari ini, menjalankan workflow approval dalam 1 tap, antrian review untuk leader, dan progres proyek — semuanya dari HP.

Build:

cd apps/vernon_project/frontend && npm install && npm run build
bench --site  clear-cache && bench restart

Struktur DocTypes

1. Project

DocType utama untuk mengelola proyek.

Fields: - project_name - Nama proyek (required) - naming_series - Auto-naming: PRJ-.YY..MM.-.##### - project_group - Link ke Project Group (required) - customer - Link ke Customer (required) - start_date - Tanggal mulai proyek (required) - deadline - Deadline proyek (required) - status - Status: Ongoing / Closed (default: Ongoing) - project_owner - PIC utama proyek (required) - project_leader - Leader proyek (required) - team_members - Table: daftar anggota tim - goal - Tujuan proyek

Business Logic: - Start Date harus lebih kecil dari Deadline - Project Owner dan Project Leader otomatis ditambahkan ke Team Members - Duplicate team members otomatis dihapus - Mendukung Calendar dan Gantt view

File: vernon_project/doctype/project/project.py


2. Project Detail

Breakdown detail pekerjaan dalam sebuah proyek.

Fields: - title - Judul detail pekerjaan (required) - naming_series - Auto-naming: PD-.{project}.-.##### - project - Link ke Project (required) - grouping - Link ke Glossary untuk pengelompokan (required) - glossaries - Table MultiSelect: glossary terkait - current_condition - Kondisi saat ini (Text Editor) - expected_outcome - Hasil yang diharapkan (Text Editor) - todo - Child Table: Project Todo - status - Status: Pending / Ongoing / Completed - is_pending - Checkbox untuk menandai pending - latest_deadline - Deadline dari project detail - latest_todo - Latest deadline dari todo (calculated) - todo_count - Jumlah todo (calculated) - todo_without_estimation - Jumlah todo tanpa estimasi (calculated) - total_estimated - Total estimasi waktu (calculated) - total_remaining_estimated - Sisa estimasi (calculated) - price - Harga (Currency) - discount - Diskon (Currency) - total - Total = Price - Discount (calculated) - keterangan_di_sow - Keterangan SOW (Text Editor)

Business Logic: - Grouping harus bagian dari Project yang dipilih - Glossaries harus bagian dari Project yang dipilih - Price harus ≥ Discount - Status auto-update berdasarkan todo: - Completed jika total_remaining_estimated = 0 dan ada todo - Pending jika is_pending = 1 - Ongoing untuk kondisi lainnya - Tidak bisa delete todo yang status bukan "⚪ Planned" - Tidak bisa delete Project Detail jika masih ada todo yang bukan "⚪ Planned"

File: vernonproject/doctype/projectdetail/project_detail.py


3. Project Todo

Child table untuk todo items dalam Project Detail.

Fields: - ongoing - Checkbox untuk menandai sedang dikerjakan - to_do - Deskripsi todo (required) - assigned_to - User yang ditugaskan (required) - deadline - Deadline todo (required) - estimated - Estimasi waktu dalam menit (Int) - notes - Catatan (Text Editor) - status - Status workflow (default: ⚪ Planned): - ⚪ Planned (belum dikerjakan) - 🟠 Done (selesai dikembangkan) - 🔷 Checked By PL (sudah dicek Project Leader) - ✅ Completed (selesai semua) - action - Button untuk next status - developed_at - Timestamp selesai develop (auto) - developed_by - User yang develop (auto) - tested_at - Timestamp selesai testing (auto) - tested_by - User yang testing (auto) - completed_at - Timestamp completed (auto) - completed_by - User yang complete (auto)

Business Logic: - Ketika status berubah, parent Project Detail akan di-save ulang - Tidak bisa delete kecuali status = "⚪ Planned" - Workflow status diatur melalui API

File: vernonproject/doctype/projecttodo/project_todo.py


4. Customer

Master data customer/klien.

Fields: - customer_name - Nama customer (required, unique)

Naming: By fieldname (customer_name)

File: vernon_project/doctype/customer/customer.json


5. Glossary

Istilah/terminologi untuk pengelompokan project detail.

Fields: - glossary - Nama istilah (required) - project - Link ke Project (required) - description - Deskripsi (Text Editor)

Naming: Format: {project}-{glossary}

File: vernon_project/doctype/glossary/glossary.json


6. Project Group

Pengelompokan proyek dalam struktur tree/hierarki.

Fields: - project_name - Nama group (required, unique) - is_group - Checkbox apakah ini folder group - parent_project_group - Parent group (untuk tree structure) - lft, rgt, old_parent - Fields untuk Nested Set Model

Features: - Tree view (is_tree: true) - Nested Set Model untuk hierarki

File: vernonproject/doctype/projectgroup/project_group.json


7. Project Team

Child table untuk team members di Project.

Fields: - user - Link ke User


8. Project Glossary

Child table MultiSelect untuk glossaries di Project Detail.

Fields: - glossary - Link ke Glossary


9. Scope of Work

DocType untuk mengelola scope of work (belum fully implemented).


10. Project Proposal

DocType untuk mengelola proposal proyek (belum fully implemented).

Role & Permissions

Roles

  1. System Manager

    • Full access ke semua data
    • Tidak ada batasan permission
  2. Project Owner

    • Bisa create project
    • Full access ke project yang dia buat atau menjadi team member
    • Bisa approve todo sampai tahap Completed
    • Bisa create/edit/delete Project Detail dan Customer
  3. Project Leader

    • Read access ke project yang dia assigned sebagai leader atau team member
    • Bisa approve todo sampai tahap "Checked By PL"
    • Bisa create/edit/delete Project Detail
  4. Project Team

    • Read-only access ke project yang dia menjadi team member
    • Bisa update status todo yang assigned ke dia

Permission Logic

Project: - User hanya bisa lihat project yang: - Dia sebagai projectowner, ATAU - Dia ada di teammembers

Project Detail: - User hanya bisa lihat project detail yang: - Project-nya memenuhi kriteria permission Project

Project Todo: - Permission mengikuti parent (Project Detail) - Update status melalui API dengan validasi role

API Endpoints

1. Get Project Team Members

Mengambil daftar team members dari sebuah project.

@frappe.whitelist()
def get_project_team_members(project_name)

Parameter: - project_name (str) - Nama project

Returns: - List of user names

File: vernon_project/api/project.py


2. Get Todo Notes

Mengambil notes dari sebuah todo.

@frappe.whitelist()
def get_notes(todo_id)

Parameter: - todo_id (str) - ID todo

Returns: - {'notes': '...'}

File: vernonproject/api/projecttodo.py


3. Update Todo Status

Update status todo mengikuti workflow dengan validasi permission.

@frappe.whitelist()
def update_status(todo_id)

Parameter: - todo_id (str) - ID todo

Workflow: 1. ⚪ Planned → 🟠 Done (oleh Assigned To / Project Owner / Project Leader) 2. 🟠 Done → 🔷 Checked By PL (oleh Project Owner / Project Leader) 3. 🔷 Checked By PL → ✅ Completed (oleh Project Owner)

Returns: - {"status": "info|error", "message": "..."}

File: vernonproject/api/projecttodo.py


4. Save Todo Notes

Menyimpan notes untuk todo dengan validasi permission.

@frappe.whitelist()
def save_notes(todo_id, notes)

Parameter: - todo_id (str) - ID todo - notes (str) - Catatan

Permission: - Hanya assignedto, projectowner, atau project_leader yang bisa save

Returns: - {"status": "ok|error", "message": "..."}

File: vernonproject/api/projecttodo.py

Reports

1. Progress Report

Laporan progress todo yang sudah dikerjakan (status bukan 'Scheduled').

Filters: - project - Filter by project - user - Filter by assigned user - date_range - Filter by tanggal (developedat, testedat, atau completed_at)

Columns: - To Do, Status, Deadline, Assigned To - Estimated (Hours) - Developed At/By, Tested At/By, Completed At/By - Project, Project Detail ID

File: vernonproject/report/progressreport/progress_report.py


2. Todo Report

Laporan semua todo yang statusnya Ongoing.

Filters: - project - Filter by project - grouping - Filter by glossary grouping - assigned_to - Filter by assigned user - status - Filter by project detail status - date_range - Filter by deadline range - todo_status - Filter by todo status

Columns: - To Do, To Do Status, Deadline, Assigned To - Estimated (minutes) - Project, Project Detail, Grouping - SOW Note, Note

File: vernonproject/report/todoreport/todo_report.py


3. Project Todo Deadline Report

Laporan deadline todo.

File: vernonproject/report/projecttododeadlinereport/


4. Daily Assignment Report

Laporan assignment harian.

File: vernonproject/report/dailyassignment_report/


5. Daily Performance Report

Laporan performance harian.

File: [vernon_project/report/da

Related Other apps for Frappe & ERPNext

  • Erpnext — Free and Open Source Enterprise Resource Planning (ERP)
  • Helpdesk — Modern, Streamlined, Free and Open Source Customer Service Software
  • Print Designer — Visual print designer for Frappe / ERPNext
  • Ctr — CTR模型代码和学习笔记总结
  • Whitelabel — Whitelabel ERPNext
  • Fossunited — fossunited.org
  • Helm — Helm Chart Repository for Frappe/ERPNext
  • Frappe Attachments S3 — A frappe app to upload file attachments in doctypes to s3.