Browse Source

Add CONTRIBUTING.md and update CONCEPT.md

pull/1/head
Nafies Luthfi 8 years ago
parent
commit
2cfd5c5899
  1. 168
      CONCEPT.md
  2. 78
      CONTRIBUTING.md

168
CONCEPT.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

78
CONTRIBUTING.md

@ -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
[![Support via PayPal](https://cdn.rawgit.com/twolfson/paypal-github-button/1.0.0/dist/button.svg)](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
Loading…
Cancel
Save