Vernonproject
Frappe App for Project Management
- Author: erickmo
- Repository: https://github.com/erickmo/VernonProject
- GitHub stars: 0
- Forks: 0
- License: MIT
- Category: Other
- Maintenance: Actively Maintained
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:
[](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
- Struktur DocTypes
- Role & Permissions
- API Endpoints
- Reports
- Installation
- Panduan Penggunaan
- Contributing
- Changelog
- License
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.
- Buka di HP:
https:///mlalu pilih Add to Home Screen. - Source:
frontend/· Backend API:vernon_project/api/mobile.py - Dokumentasi lengkap (arsitektur, alur UX harian, onboarding): MOBILE_APP.md
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
System Manager
- Full access ke semua data
- Tidak ada batasan permission
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
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
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.