Browse Source
Add new Agency entity, create user's agency on registration
Add new Agency entity, create user's agency on registration
Update readme.md filepull/1/head
8 changed files with 236 additions and 11 deletions
-
10app/Entities/Agencies/Agency.php
-
8app/Http/Controllers/AuthController.php
-
24app/Http/Requests/Accounts/RegisterRequest.php
-
37database/migrations/2017_10_28_170121_create_agencies_table.php
-
110readme.md
-
33resources/lang/id/agency.php
-
12resources/views/auth/register.blade.php
-
13tests/Feature/Auth/MemberRegistrationTest.php
@ -0,0 +1,10 @@ |
|||
<?php |
|||
|
|||
namespace App\Entities\Agencies; |
|||
|
|||
use Illuminate\Database\Eloquent\Model; |
|||
|
|||
class Agency extends Model |
|||
{ |
|||
protected $fillable = ['name', 'email', 'address', 'phone', 'website', 'owner_id']; |
|||
} |
|||
@ -0,0 +1,37 @@ |
|||
<?php |
|||
|
|||
use Illuminate\Database\Migrations\Migration; |
|||
use Illuminate\Database\Schema\Blueprint; |
|||
use Illuminate\Support\Facades\Schema; |
|||
|
|||
class CreateAgenciesTable extends Migration |
|||
{ |
|||
/** |
|||
* Run the migrations. |
|||
* |
|||
* @return void |
|||
*/ |
|||
public function up() |
|||
{ |
|||
Schema::create('agencies', function (Blueprint $table) { |
|||
$table->increments('id'); |
|||
$table->string('name'); |
|||
$table->string('email')->unique(); |
|||
$table->string('address')->nullable(); |
|||
$table->string('phone')->nullable(); |
|||
$table->string('website')->nullable(); |
|||
$table->unsignedInteger('owner_id'); |
|||
$table->timestamps(); |
|||
}); |
|||
} |
|||
|
|||
/** |
|||
* Reverse the migrations. |
|||
* |
|||
* @return void |
|||
*/ |
|||
public function down() |
|||
{ |
|||
Schema::dropIfExists('agencies'); |
|||
} |
|||
} |
|||
@ -1,3 +1,111 @@ |
|||
# Project Management Office |
|||
|
|||
Project Management Office, is a project management tool for freelancers and agencies to manage their project professionally. |
|||
> # PMO.web.id |
|||
|
|||
Project Management Office, is a project management tool for freelancers and agencies to manage their project professionally. |
|||
Sebuah aplikasi untuk membantu freelancer dan agensi mengelola project web |
|||
|
|||
## Konsep |
|||
|
|||
### 1. Agency |
|||
|
|||
Agency adalah lembaga yang mengelola dan mengerjakan project, Agency tidak terbatas untuk perusahaan saja, freelancer juga dapat membuat agency |
|||
|
|||
1. User yang mendaftar menjadi seorang admin dari sebuah agency |
|||
2. Agency memiliki dari beberapa project |
|||
3. Agency memiliki dari beberapa user (pekerja) |
|||
4. Agency memiliki dari beberapa vendor |
|||
5. Agency memiliki beberapa customer |
|||
6. Seorang User yang telah terdaftar sebagai Worker dapat membuat Agency sendiri, untuk mengelola project sendiri. |
|||
|
|||
#### Relasi |
|||
|
|||
1. User has 0 to 1 Agency; Agency belongs to 1 User |
|||
2. Agency has 0 to many projects; Project belongs to an Agency |
|||
3. Agency has 1 to many workers; Worker (User) belongs to an Agency |
|||
4. Agency has 0 to many vendor; Vendor belongs to an Agency |
|||
5. Agency has 0 to many customer; Customer belongs to an Agency |
|||
|
|||
### 2. Project |
|||
|
|||
Project adalah pekerjaan yang dikerjakan oleh agency untuk seorang customernya |
|||
|
|||
1. Sebuah project adalah milik sebuah Agency |
|||
2. Sebuah project adalah milik sebuah Customer |
|||
3. Project memiliki beberapa Fitur/Item pekerjaan |
|||
4. Project memiliki beberapa Invoice |
|||
5. Project memiliki beberapa Pembayaran (dengan atau tanpa invoice) |
|||
6. Project memiliki beberapa Meeting (pertemuan dengan customer) |
|||
|
|||
#### Relasi |
|||
|
|||
1. Project belongs to an Agency; Agency has 0 to many Projects |
|||
2. Project belongs to a Customer; Customer has 0 to many Projects |
|||
3. Project has 0 to many Features/Project Items; Feature belongs to a Project |
|||
4. Project has 0 to many Invoices; Invoice belongs to a Project |
|||
5. Project has 0 to many Payments; Payment belongs to a Project |
|||
6. Project has 0 to many Meetings; Meeting belongs to a Project |
|||
|
|||
|
|||
### 3. Fitur/Item pekerjaan |
|||
|
|||
1. Fitur memiliki harga/biaya |
|||
2. Fitur memiliki seorang pekerja/PIC |
|||
3. Fitur memiliki beberapa sub-fitur |
|||
4. Fitur memiliki beberapa task (semacam checklist pekerjaan) |
|||
5. Fitur memiliki Atribut: |
|||
- Nama fitur |
|||
- Deskripsi |
|||
- PIC (pekerja/worker) |
|||
- Biaya/Fee |
|||
- Prioritas |
|||
- tanggal mulai |
|||
- tanggal selesai |
|||
- tanggal batal |
|||
6. Fitur memiliki beberapa dependency terhadap fitur lain |
|||
- Misal Fitur A merupakan dependency dari Fitur B |
|||
- Maka Fitur A harus diselesaikan dulu sebelum fitur B dikerjakan |
|||
7. Progress pengerjaan fitur dihitung otomatis berdasarkan rata-rata % Progress task |
|||
8. Fitur dapat diurutkan berdasarkan prioritas |
|||
|
|||
### 4. Task |
|||
|
|||
Task adalah item tugas yang dilakukan oleh PIC/Pekerja untuk memgerjakan 1 fitur |
|||
|
|||
1. Task dimiliki oleh sebuah Fitur/Item pekerjaan |
|||
2. Task dapat diurutkan berdasarkan prioritas |
|||
3. Task memiliki Atribut : |
|||
- Nama Task |
|||
- Deskripsi |
|||
- Progress (0 - 100 %) |
|||
- Prioritas |
|||
|
|||
### 5. Meeting |
|||
|
|||
Meeting adalah pertemuan yang dilakukan bersama Customer |
|||
|
|||
1. Meeting dilakukan untuk 1 project |
|||
2. Meeting memiliki Berita Acara Pertemuan (BAP) |
|||
3. BAP terdiri dari : |
|||
- tanggal |
|||
- daftar hadir |
|||
- agenda |
|||
- hasil pertemuan |
|||
|
|||
|
|||
### 6. Invoice |
|||
|
|||
Invoice adalah tagihan pembayaran yang dibuat oleh Agency kepada diberikan Customer. |
|||
|
|||
1. Invoice adalah milik sebuah project |
|||
2. Invoice memiliki beberapa pembayaran (misal invoice dibayar dicicil) |
|||
3. Invoice bisa diupdate status Lunas |
|||
|
|||
### 7. Pembayaran |
|||
|
|||
Adalah pembayaran yang dilakukan dari Customer kepada Agency (pemasukan), atau Agency kepada vendor (pengeluaran). |
|||
|
|||
1. Project memiliki beberapa Pembayaran |
|||
2. Pembayaran memiliki 1 Project |
|||
3. Pembayaran memiliki 1 Invoice |
|||
4. Pembayaran dapat cetak Kuitansi/Bukti pembayaran |
|||
@ -0,0 +1,33 @@ |
|||
<?php |
|||
|
|||
return [ |
|||
// Labels
|
|||
'agency' => 'Agensi', |
|||
'list' => 'Daftar Agensi', |
|||
'search' => 'Cari Agensi', |
|||
'not_found' => 'Agensi tidak ditemukan', |
|||
'empty' => 'Belum ada Agensi', |
|||
'back_to_show' => 'Kembali ke detail Agensi', |
|||
'back_to_index' => 'Kembali ke daftar Agensi', |
|||
|
|||
// Actions
|
|||
'create' => 'Input Agensi Baru', |
|||
'created' => 'Input Agensi baru telah berhasil.', |
|||
'show' => 'Detail Agensi', |
|||
'edit' => 'Edit Agensi', |
|||
'update' => 'Update Agensi', |
|||
'updated' => 'Update data Agensi telah berhasil.', |
|||
'delete' => 'Hapus Agensi', |
|||
'delete_confirm' => 'Anda yakin akan menghapus Agensi ini?', |
|||
'deleted' => 'Hapus data Agensi telah berhasil.', |
|||
'undeleted' => 'Data Agensi gagal dihapus.', |
|||
'undeleteable' => 'Data Agensi tidak dapat dihapus.', |
|||
|
|||
// Attributes
|
|||
'name' => 'Nama Agensi', |
|||
'email' => 'Email Agensi', |
|||
'website' => 'Website Agensi', |
|||
'address' => 'Alamat Agensi', |
|||
'phone' => 'Telp. Agensi', |
|||
'owner' => 'Pemilik Agensi', |
|||
]; |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue