├── .gitignore ├── project-planning ├── architecture-desain-&-prototype │ └── architecture-desain-&-prototype.md └── product-conceptualization │ └── product-conceptualization.md ├── content └── architecture-desain-&-prototype │ ├── api-spec.yaml │ ├── desain-struktur-database.md │ ├── spesifikasi-request-dan-response.json │ └── identifikasi-endpoint.md └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .idea -------------------------------------------------------------------------------- /project-planning/architecture-desain-&-prototype/architecture-desain-&-prototype.md: -------------------------------------------------------------------------------- 1 | #### 2.1 Desain API 2 | - _2.1.1_ [Identifikasi Endpoint](../../content/architecture-desain-&-prototype/identifikasi-endpoint.md) 3 | - _2.1.2_ [Spesifikasi Request dan Response]() 4 | - _2.1.3_ [Desain Struktur Database](../../content/architecture-desain-&-prototype/desain-struktur-database.md) -------------------------------------------------------------------------------- /content/architecture-desain-&-prototype/api-spec.yaml: -------------------------------------------------------------------------------- 1 | swagger: "2.0" 2 | info: 3 | title: point-of-sale 4 | description: point-of-sale 5 | version: 1.0.0 6 | host: localhost:8080 7 | schemes: 8 | - https 9 | securityDefinitions: 10 | pin number: 11 | type: apiKey 12 | name: pin number 13 | in: header 14 | access_token: 15 | type: apiKey 16 | name: access-token 17 | in: header 18 | paths: 19 | 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Work Breakdown Structure 2 | 3 | ___ 4 | 5 | ## 1. [Ideation](project-planning/product-conceptualization/product-conceptualization.md) 6 | ## 2. [Prototyping](project-planning/architecture-desain-&-prototype/architecture-desain-&-prototype.md) 7 | ## 3. [Development](project-planing/) 8 | ## 4. [Deployment](project-planing/) 9 | ## 6. [Documentation](project-planing/) 10 | ## 7. [Maintenance and Support](project-planing/) 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /project-planning/product-conceptualization/product-conceptualization.md: -------------------------------------------------------------------------------- 1 | #### 1.1 Define Product 2 | - _1.1.1_ point-of-sale 3 | 4 | #### 1.2 Market Research 5 | - _1.2.1_ Identify Target Audience 6 | - _1.2.2_ Analyze Competitors 7 | - _1.2.3_ Identify Market Trends 8 | 9 | #### 1.3 Identifikasi Kebutuhan Bisnis 10 | - _1.3.1_ 11 | - _1.3.2_ 12 | 13 | ### 1.4 Fitur yang di deliver 14 | - _1.4.1_ 15 | - _1.4.2_ 16 | 17 | #### 1.5 Kelebihan sistem dibandingkan sistem yang sudah ada 18 | - _1.5.1_ 19 | - _1.5.2_ 20 | 21 | #### 1.6 Persiapan Lingkungan Pengembangan 22 | - _1.6.1_ 23 | - _1.6.2_ -------------------------------------------------------------------------------- /content/architecture-desain-&-prototype/desain-struktur-database.md: -------------------------------------------------------------------------------- 1 | 2 | + _table Auth_ 3 | - user_id 4 | - username 5 | - password 6 | - pin 7 | - email 8 | - phone_number 9 | - created_at 10 | - update_at 11 | - delete_at 12 | 13 | + _table Product_ 14 | - product_id 15 | - name 16 | - category 17 | - merk 18 | - purchase price 19 | - selling price 20 | - stock 21 | 22 | + _table supplier_ 23 | - name 24 | - address 25 | - phone_number 26 | 27 | + _table transaction_ 28 | - transaction_id 29 | - customer_id (Foreign Key): ID pelanggan terkait dengan transaksi (jika ada). 30 | - transaction_date 31 | - total_amount 32 | - payment_status 33 | 34 | + _table detail_transaction_ 35 | - transaction_detail_id 36 | - transaction_id 37 | - product_id 38 | - quantity 39 | - unit_price 40 | 41 | + _table customers_ 42 | - customer_id 43 | - name 44 | - email 45 | - phone_number -------------------------------------------------------------------------------- /content/architecture-desain-&-prototype/spesifikasi-request-dan-response.json: -------------------------------------------------------------------------------- 1 | { 2 | "REGISTER ADMIN": [ 3 | { 4 | "request": { 5 | "username": "john doe", 6 | "email|phone_number": "johndoe@gmail.com|0897715753", 7 | "password": "secret", 8 | "password_confirm": "secret", 9 | "pin": 123456 10 | } 11 | }, 12 | { 13 | "response": { 14 | "status": 201, 15 | "message": "you have successfully register" 16 | } 17 | } 18 | ], 19 | "LOGIN ADMIN": [ 20 | { 21 | "request": { 22 | "username|email|phone_number": "john doe|johndoe@gmail.com|0897715753", 23 | "password": "secret", 24 | "pin": "" 25 | } 26 | }, 27 | { 28 | "response": { 29 | "status": 200, 30 | "token": "isine token", 31 | "message": "you have successfully login" 32 | } 33 | } 34 | ], 35 | "FORGET PASSWORD": [ 36 | { 37 | "request if you not implement thirdParty": { 38 | "|email|phone_number": "", 39 | "pin": "", 40 | "new_password": "", 41 | "new_confirm_password": "" 42 | }, 43 | "request if you implement thirdParty": { 44 | "|email|phone_number": "" 45 | } 46 | }, 47 | { 48 | "response": { 49 | "status": "200", 50 | "message": "successfully forgot password and change password" 51 | } 52 | } 53 | ], 54 | "CHANGE PASSWORD ADMIN": [ 55 | { 56 | "request": { 57 | "pin": "", 58 | "token": "", 59 | "new_password": "", 60 | "new_confirm_password": "" 61 | } 62 | }, 63 | { 64 | "response": { 65 | "status": "200", 66 | "message": "successfully change password admin" 67 | } 68 | } 69 | ], 70 | "CHANGE PASSWORD CASHIER": [ 71 | { 72 | "request": { 73 | "username|email|phone_number": "john doe|johndoe@gmail.com|0897715753", 74 | "password": "secret", 75 | "pin": "", 76 | "username_cashier|email_cashier|phone_number_cashier": "", 77 | "new_password_cashier": "", 78 | "new_confirm_password_cashier": "" 79 | } 80 | }, 81 | { 82 | "response": { 83 | "status": "200", 84 | "message": "successfully change password cashier" 85 | } 86 | } 87 | ] 88 | } 89 | 90 | 91 | -------------------------------------------------------------------------------- /content/architecture-desain-&-prototype/identifikasi-endpoint.md: -------------------------------------------------------------------------------- 1 | 1. _/auth_ = login, register (admin, cashier) kasir hanya bisa membuat transaksi baru, yang bisa membuat role cashier adalah role admin 2 | + Endpoints: 3 | - POST /auth/login 4 | - POST /auth/register 5 | + Deskripsi: 6 | - login: Endpoint untuk mengotentikasi pengguna. 7 | - register: Endpoint untuk mendaftarkan pengguna baru (admin atau kasir). 8 | 9 | 2. _/product_ = menambahkan produk baru, memperbarui informasi produk termasuk menambahkan stock product, atau menghapus produk. 10 | + Endpoints: 11 | - POST /product/add 12 | - PUT /product/update 13 | - DELETE /product/delete 14 | + Deskripsi: 15 | - add: Endpoint untuk menambahkan produk baru. 16 | - update: Endpoint untuk memperbarui informasi produk, termasuk penambahan stok. 17 | - delete: Endpoint untuk menghapus produk. 18 | 19 | 3. _/transactions_ = membuat transaksi baru, history penjualan, pembelian product ke supplier(kulak an)[perputaran uang], pengeluaran(pake uang bisnis untuk keperluan di luar bisnis, seperti gaji karyawan)[uang tidak berputar], 20 | + Endpoints: 21 | - POST /transactions/new 22 | - GET /transactions/history 23 | + Deskripsi: 24 | - new: Endpoint untuk membuat transaksi baru. 25 | - history: Endpoint untuk mendapatkan riwayat transaksi. 26 | 27 | 4. _/supplier_ = untuk mengelola informasi supplier, seperti menambahkan data supplier baru atau mengambil informasi supplier yang ada. 28 | + Endpoints: 29 | - POST /supplier/add 30 | - GET /supplier/list 31 | + Deskripsi: 32 | - add: Endpoint untuk menambahkan data supplier baru. 33 | - list: Endpoint untuk mendapatkan daftar supplier yang ada. 34 | 35 | 5. _/customers_ = untuk mengelola informasi pelanggan, seperti menambahkan data pelanggan baru atau mengambil informasi pelanggan yang ada. 36 | + Endpoints: 37 | - POST /customers/add 38 | - GET /customers/list 39 | + Deskripsi: 40 | - add: Endpoint untuk menambahkan data pelanggan baru. 41 | - list: Endpoint untuk mendapatkan daftar pelanggan yang ada. 42 | 43 | 6. _/member_ = kalo melakukan transaksi baru sebagai member otomatis bisa mendapatkan diskon, diskon bisa di ubah-ubah tergantung role admin 44 | + Endpoints: 45 | - PUT /member/discount 46 | + Deskripsi: 47 | - discount: Endpoint untuk mengatur diskon untuk anggota, yang dapat diubah oleh admin. 48 | 49 | 7. _/payments_ = untuk mengelola proses pembayaran, termasuk memproses pembayaran, mengelola metode pembayaran, atau mengambil riwayat pembayaran. 50 | + Endpoints: 51 | - POST /payments/process 52 | - GET /payments/history 53 | + Deskripsi: 54 | - process: Endpoint untuk memproses pembayaran. 55 | - history: Endpoint untuk mendapatkan riwayat pembayaran. 56 | 57 | 8. _/reports_ = untuk menghasilkan laporan keuangan atau laporan lainnya terkait penjualan, stok, atau kinerja toko. 58 | + Endpoints: 59 | - GET /reports/financial 60 | - GET /reports/sales 61 | + Deskripsi: 62 | - financial: Endpoint untuk menghasilkan laporan keuangan. 63 | - sales: Endpoint untuk menghasilkan laporan penjualan. --------------------------------------------------------------------------------