2 changed files with 186 additions and 60 deletions
-
168CONCEPT.md
-
78CONTRIBUTING.md
@ -1,102 +1,150 @@ |
|||
# Free PMO |
|||
|
|||
Free PMO adalah sebuah tool untuk mempermudah pengelolaan dan monitor project bagi feelancer dan agensi. |
|||
Free PMO adalah sebuah alat bantu untuk mempermudah pengelolaan dan monitor project bagi *feelancer* dan agensi/*software house* atau perusahaan yang memiliki layanan berupa project untuk customernya. |
|||
|
|||
## Konsep |
|||
|
|||
### 1. Project |
|||
Berikut ini adalah konsep-konsep fitur yang telah dan akan diimplementasikan pada Free PMO. |
|||
|
|||
Project adalah pekerjaan yang dikerjakan oleh agency untuk seorang customernya |
|||
### 1. User dan Jenis Pengguna |
|||
|
|||
1. Sebuah project adalah milik sebuah Customer |
|||
2. Project memiliki beberapa Job/Item pekerjaan |
|||
3. Project memiliki beberapa Invoice |
|||
4. Project memiliki beberapa Pembayaran (dengan atau tanpa invoice) |
|||
5. Project memiliki beberapa Meeting (pertemuan dengan customer) |
|||
Free PMO memiliki dua jenis pengguna/tipe user : |
|||
|
|||
#### Relasi |
|||
1. **Administrator** (mengendalikan dan mengelola seluruh data) |
|||
2. **Worker** (pekerja yang ditugasi job dan diberikan pembayaran fee) |
|||
|
|||
Tidak menutup kemungkinan jika jenis pengguna ini ditambah lagi. |
|||
|
|||
### 2. Project |
|||
|
|||
Project adalah pekerjaan yang dikerjakan oleh agensi untuk customernya |
|||
|
|||
1. Sebuah **project** milik satu **Customer** |
|||
2. **Project** memiliki beberapa **Job**/Item pekerjaan |
|||
3. **Project** memiliki beberapa **Invoice** (TODO) |
|||
4. **Project** memiliki beberapa **Pembayaran** (dengan atau tanpa invoice) |
|||
5. **Project** memiliki beberapa **Meeting** (pertemuan dengan customer) |
|||
6. **Project** memiliki beberapa **Langganan** (subscription) |
|||
7. **Project** memiliki beberapa **File** Dokumen (TODO) |
|||
|
|||
1. Project belongs to a Customer; Customer has 0 to many Projects |
|||
2. Project has 0 to many Features/Project Items; Feature belongs to a Project |
|||
3. Project has 0 to many Invoices; Invoice belongs to a Project |
|||
4. Project has 0 to many Payments; Payment belongs to a Project |
|||
5. Project has 0 to many Meetings; Meeting belongs to a Project |
|||
#### Relasi |
|||
|
|||
1. **Project** belongs to a **Customer**; Customer has 0 to many Projects |
|||
2. **Project** has 0 to many **Jobs**/Project Items; Feature belongs to a Project |
|||
3. **Project** has 0 to many **Invoices**; Invoice belongs to a Project |
|||
4. **Project** has 0 to many **Payments**; Payment belongs to a Project |
|||
5. **Project** has 0 to many **Meetings**; Meeting belongs to a Project |
|||
6. **Project** has 0 to many **Subscriptions**; Subscription belongs to a Project |
|||
7. **Project** has 0 to many **Files**; File belongs to a Project |
|||
|
|||
### 2. Job/Item pekerjaan |
|||
### 3. Job/Item pekerjaan |
|||
|
|||
1. Job memiliki harga/biaya |
|||
2. Job memiliki seorang pekerja/PIC |
|||
3. Job memiliki beberapa sub-job |
|||
4. Job memiliki beberapa task (semacam checklist pekerjaan) |
|||
5. Job memiliki Atribut: |
|||
1. **Job** memiliki harga/biaya (misal untuk membayar pekerja) |
|||
2. **Job** memiliki seorang **User** sebagai pekerja/penanggung jawab |
|||
3. **Job** memiliki beberapa **task** (semacam checklist progress pekerjaan) |
|||
4. **Job** memiliki Atribut: |
|||
- Nama job |
|||
- Deskripsi |
|||
- PIC (pekerja/worker) |
|||
- Biaya/Fee |
|||
- Prioritas |
|||
- tanggal mulai |
|||
- tanggal selesai |
|||
- tanggal batal |
|||
6. Job memiliki beberapa dependency terhadap job lain |
|||
- tanggal mulai (TODO) |
|||
- tanggal selesai (TODO) |
|||
- tanggal batal (TODO) |
|||
5. **Job** memiliki beberapa dependency terhadap job lain (TODO) |
|||
- Misal Job A merupakan dependency dari Job B |
|||
- Maka Job A harus diselesaikan dulu sebelum job B dikerjakan |
|||
7. Progress pengerjaan job dihitung otomatis berdasarkan rata-rata % Progress task |
|||
8. Job dapat diurutkan berdasarkan prioritas |
|||
6. Progress pengerjaan job dihitung otomatis berdasarkan rata-rata **progress Task** (dalam %) |
|||
7. **Job** dapat diurutkan berdasarkan prioritas |
|||
|
|||
### 3. Task |
|||
### 4. Task |
|||
|
|||
Task adalah item tugas yang dilakukan oleh PIC/Pekerja untuk memgerjakan 1 job |
|||
Task adalah item tugas yang dilakukan oleh PIC/Pekerja untuk mengerjakan 1 job. |
|||
|
|||
1. Task dimiliki oleh sebuah Job/Item pekerjaan |
|||
2. Task dapat diurutkan berdasarkan prioritas |
|||
3. Task memiliki Atribut : |
|||
1. **Task** dimiliki oleh sebuah **Job**/Item pekerjaan |
|||
2. **Task** dapat diurutkan berdasarkan prioritas |
|||
3. **Task** memiliki Atribut : |
|||
- Nama Task |
|||
- Deskripsi |
|||
- Progress (0 - 100 %) |
|||
- Prioritas |
|||
|
|||
### 4. Meeting (TODO) |
|||
### 5. Pembayaran |
|||
|
|||
Meeting adalah pertemuan yang dilakukan bersama Customer |
|||
Adalah pembayaran yang dilakukan dari Customer kepada Agensi (pemasukan), atau Agensi kepada vendor (pengeluaran), atau Agensi kepada pekerja/user (pengeluaran). |
|||
|
|||
1. Meeting dilakukan untuk 1 project |
|||
2. Meeting memiliki Berita Acara Pertemuan (BAP) |
|||
3. BAP terdiri dari : |
|||
- tanggal |
|||
- daftar hadir |
|||
- agenda |
|||
- hasil pertemuan |
|||
1. Satu **Project** memiliki beberapa **Pembayaran** |
|||
2. **Pembayaran** memiliki 1 Project |
|||
3. **Pembayaran** memiliki 1 Invoice (TODO) |
|||
4. **Pembayaran** dapat cetak **Kuitansi**/Bukti pembayaran |
|||
5. **Pembayaran** memiliki 1 partner berupa : vendor/customer/user (Relasi Morph) |
|||
|
|||
### 6. Vendor |
|||
|
|||
### 5. Invoice (TODO) |
|||
Adalah penyedia/supplier/provider yang digunakan oleh Agensi saat ada pengeluaran biaya project. |
|||
|
|||
Invoice adalah tagihan pembayaran yang dibuat oleh Agensi kepada diberikan Customer. |
|||
1. **Vendor** memiliki beberapa **pembayaran** |
|||
|
|||
### 7. Subscription/Langganan |
|||
|
|||
1. Invoice adalah milik sebuah project |
|||
2. Invoice memiliki beberapa pembayaran (misal invoice dibayar dicicil) |
|||
3. Invoice bisa diupdate status Lunas |
|||
Adalah langganan yang dibayar oleh customer secara berkala, yaitu Hosting, Domain dan Maintenance. |
|||
|
|||
### 6. Pembayaran |
|||
1. **Subscription** memiliki 1 **project** |
|||
2. **Subscription** memiliki 1 **customer** |
|||
3. **Subscription** memiliki 1 **vendor** |
|||
|
|||
Adalah pembayaran yang dilakukan dari Customer kepada Agensi (pemasukan), atau Agensi kepada vendor (pengeluaran). |
|||
### 7. Laporan Penghasilan |
|||
|
|||
1. Project memiliki beberapa Pembayaran |
|||
2. Pembayaran memiliki 1 Project |
|||
3. Pembayaran memiliki 1 Invoice (TODO) |
|||
4. Pembayaran dapat cetak Kuitansi/Bukti pembayaran |
|||
5. Pembayaran memiliki 1 partner berupa : vendor/customer/user |
|||
Laporan penghasilan pada Free PMO adalah rekap transaksi pengeluaran dan pemasukan agensi dari project-project yang telah dikerjakan. Halaman ini hanya diakses oleh Admin Agensi. |
|||
|
|||
### 6. Vendor |
|||
#### Laporan Tahunan |
|||
|
|||
Adalah penyedia/supplier/provider yang digunakan oleh Agensi saat ada pengeluaran biaya project. |
|||
Adalah laporan berupa **grafik profit** dan **tabel detail laporan** berupa : Nama Bulan, Jumlah Transaksi Pembayaran, Jumlah Uang Masuk, Jumlah Uang Keluar dan Profit (selisih pemasukan dan pengeluaran), serta tombol action untuk melihat **Laporan Bulanan**. |
|||
|
|||
1. Vendor memiliki beberapa pembayaran |
|||
Pada Laporan Tahunan, Admin Agensi dapat memilih tahun yang ingin dilihat. |
|||
|
|||
### 7. Subscription/Langganan |
|||
|
|||
Adalah langganan yang dibayar oleh customer secara berkala, yaitu hosting dan domain. |
|||
#### Laporan Bulanan |
|||
|
|||
Adalah laporan berupa **grafik profit** dan **tabel detail laporan** berupa : Tanggal, Jumlah Transaksi Pembayaran, Jumlah Uang Masuk, Jumlah Uang Keluar dan Profit (selisih pemasukan dan pengeluaran), serta tombol action untuk melihat **Laporan Harian**. |
|||
|
|||
1. Subscription memiliki 1 project |
|||
2. Subscription memiliki 1 customer |
|||
3. Subscription memiliki 1 vendor |
|||
Pada Laporan Bulanan, Admin Agensi dapat memilih tahun dan bulan yang ingin dilihat. |
|||
|
|||
#### Laporan Harian |
|||
|
|||
Laporan Harian adalah tabel **daftar transaksi** pembayaran yang terjadi pada tanggal yang dipilih tersebut. |
|||
|
|||
### 8. Laporan Piutang |
|||
|
|||
Laporan ini adalah tabel daftar project dengan pembayaran Customer yang akan diterima oleh Agensi jika project telah selesai dikerjakan. |
|||
|
|||
### 9. Dashboard Admin Agensi |
|||
|
|||
Dashboard Admin Agensi berisi : |
|||
|
|||
1. Statistik jumlah project sesuai dengan statusnya saat ini. |
|||
2. Statistik pendapatan : |
|||
- Pendapatan total tahun ini |
|||
- Jumlah Project selesai tahun ini |
|||
- Jumlah pendapatan yang akan datang (akan dibayar oleh Customer) |
|||
3. List Langganan Customer yang akan berakhir dalam 60 hari ke depan. |
|||
|
|||
### 10. Invoice (TODO) |
|||
|
|||
Invoice adalah tagihan pembayaran yang dibuat oleh Agensi kepada diberikan Customer. |
|||
|
|||
1. **Invoice** adalah milik sebuah **project** |
|||
2. **Invoice** memiliki beberapa **pembayaran** (misal invoice dibayar dicicil) |
|||
3. **Invoice** bisa diupdate status Lunas |
|||
|
|||
### 11. Meeting (TODO) |
|||
|
|||
Meeting adalah pertemuan yang dilakukan bersama Customer. |
|||
|
|||
1. **Meeting** dilakukan untuk 1 project |
|||
2. **Meeting** memiliki satu Berita Acara Pertemuan (BAP) |
|||
3. BAP terdiri dari : |
|||
- tanggal |
|||
- daftar hadir |
|||
- agenda |
|||
- hasil pertemuan |
|||
@ -0,0 +1,78 @@ |
|||
# Kontribusi ke Free PMO |
|||
|
|||
Terima kasih karena telah berkenan mempertimbangkan untuk berkontribusi pada project ini. Mari kita buat software Free PMO menjadi jauh lebih baik. |
|||
|
|||
### Submit Issue |
|||
Project ini masih terus dikembangkan. Sebagian besar fitur yang telah dibuat memiliki **Feature** atau **Unit Testing**, namun sangat mungkin masih ada **bug** yang terlewat dari pengujian tersebut. Jika selama menggunakan software ini Anda temukan **bug** atau **error**, silakan [melaporkan **Issue**](https://github.com/nafiesl/free-pmo/issues/new){:target="_blank"} dengan **prefix Subject : [BUG]**. |
|||
|
|||
Kita akan mencoba minimalisir **bug** sebisa mungkin. |
|||
|
|||
> Sebelum submit sebuah issue, ada baiknya Anda mencari pada daftar issue sudah dilaporkan oleh kontributor lain, siapa tahu sudah ada yang melaporkan :) |
|||
|
|||
### Usulan Fitur Baru |
|||
Pada dasarnya Free PMO sudah mencakup fitur-fitur dasar dalam pengelolaan project (terutama dari sudut pandang *freelancer*). Sangat mungkin beberapa fitur ditambahkan pada masa akan datang. Jika Anda memiliki **ide** yang ingin diusulkan dan dituangkan menjadi sebuah fitur pada project ini agar semua dapat menikmatinya, silakan usulkan dengan **submit Issue** dengan **prefix Subject : [PROPOSAL]**. |
|||
|
|||
Dengan senang hati kita akan diskusikan. |
|||
|
|||
### Membuat Pull Request |
|||
|
|||
Wah, bagian ini adalah kontribusi yang luar biasa, Anda sudah berkenan meluangkan waktu dan pikiran untuk membantu banyak orang, terima kasih banyak. Ada beberapa **kategori pull request** yang dapat Anda berikan : |
|||
|
|||
#### 1. Bugfix |
|||
|
|||
Di mana Anda membantu dalam **perbaikan error** yang dilaporkan oleh kontributor lain melalui [**Issue**](https://github.com/nafiesl/free-pmo/issues){:target="_blank"}. Jika perbaikan error ini berkaitan dengan interaksi ke database (CRUD Operation), mohon agar Anda : |
|||
|
|||
1. Membuat **testing**, terkait fitur yang memiliki bug. |
|||
2. Pastikan **semua testing passed** pada saat Anda melakukan **pull request**. |
|||
|
|||
Kita akan review sama-sama terhadap perubahan yang Anda lakukan. Sekedar memastikan tidak ada konflik yang terjadi saat **pull request** ini disetujui. |
|||
|
|||
#### 2. Kesalahan Penulisan |
|||
|
|||
Pada project ini sangat mungkin terjadi kesalahan penulisan pada `halaman web` software, bagian `komentar`, `dokumentasi`, maupun pada file `lang` yang banyak kita gunakan pada sistem. Jika Anda menemukan kesalahan itu, silakan lakukan **pull request** untuk kita perbaiki sama-sama. |
|||
|
|||
#### 3. New Feature |
|||
|
|||
Jenis **pull request** ini akan menambahkan fitur baru pada Free PMO. Jika Anda ingin melakukan pull request jenis ini, kami harapkan agar memenuhi ketentuan berikut : |
|||
|
|||
1. Sebelumnya fitur ini sudah diusulkan dan dibahas pada [**Issue**](https://github.com/nafiesl/free-pmo/issues){:target="_blank"}. |
|||
2. Fitur tambahan dilengkapi dengan Feature Test atau Unit Test sesuai keperluan (terutama jika ada interaksi perubahan pada database). |
|||
3. Semua **testing passed** |
|||
|
|||
Kita akan **review dan uji** fitur baru tersebut sebelum **pull request** disetujui. |
|||
|
|||
#### 4. Lang File |
|||
|
|||
Jenis **pull request** ini akan menambahkan **lang** file pada direktori `resources/lang` sesuai dengan konfigurasi `locale`-nya (misal `lang/en` untuk Bahasa Inggris). Saat ini file-file `lang` yang lengkap hanya pada direktori `locale` `id` untuk Bahasa Indonesia. |
|||
|
|||
Jika Anda ingin menambahkan bahasa locale lainnya, terutama `locale` `en` (Bahasa Inggris). Silakan melakukan **pull request** untuk kita **review** bersama. |
|||
|
|||
### Kontribusi Donasi |
|||
|
|||
Free PMO adalah software management project yang bebas (merdeka) dan gratis. **Pengembang sudah ridho** jika Anda menggunakan dan memodifikasinya untuk tujuan pribadi maupun komersil (sesuai dengan [lisensi](LICENSE)). |
|||
|
|||
Tetapi jika ada merasa sangat terbantu dengan software ini, dan berniat untuk mendonasikan sebagai rezeki Anda kepada pengembang, silakan mengirimkan donasi melalui jalur berikut : |
|||
|
|||
|
|||
#### Rekening Transfer |
|||
|
|||
| No. Rekening | BCA // 7820088543 | |
|||
| --- | --- | |
|||
| Atas nama | **Nafies Luthfi** | |
|||
| Kode Transfer | 014 | |
|||
|
|||
#### atau |
|||
|
|||
[](https://www.paypal.me/nafiesl/) |
|||
|
|||
Terima kasih banyak saya ucapan. |
|||
|
|||
### Penutup |
|||
|
|||
Terima kasih atas kontribusinya, semoga menjadi kebaikan untuk semua. |
|||
|
|||
Salam hangat, |
|||
|
|||
<br> |
|||
Nafies Luthfi, |
|||
Pengembang Free PMO |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue