Files
karyamanswasta 12c65e4f9f feat: initial commit for camping rental webapp
This commit establishes the foundational structure for the Karyaman project, focusing on the camping equipment rental web application.

Key additions include:
- Scaffolding for three React applications: `adventure-rental-app`, `motel-app`, and `pakrete-app` using Create React App.
- Initial implementation of `HomePage` and `CategoriesPage` components for the `adventure-rental-app`, based on provided design mockups.
- Project documentation including PRDs and design files for the applications.
- Configuration of the Kilo Code memory bank with core project details such as architecture, product vision, and tech stack.
2025-07-31 00:07:28 +07:00

7.4 KiB

Product Requirement Document (PRD) for Arisan Web App

  1. Introduction This document outlines the requirements for an Arisan Web Application, designed to streamline and manage traditional Indonesian arisan activities. The application will provide functionalities for managing a central cash fund, individual savings, member loans, and an automated winner draw system. The frontend will be built using Create React App (CRA), and the backend will leverage n8n for workflow automation and API management.

  2. Goals and Objectives Automate Arisan Processes: Reduce manual effort in managing arisan funds, savings, loans, and winner draws.

Increase Transparency: Provide clear visibility of all financial transactions and winner selections to all members.

Improve Accessibility: Enable members to access arisan information and perform actions from anywhere, anytime.

Enhance User Experience: Offer an intuitive and easy-to-use interface for all participants.

Ensure Data Accuracy: Minimize errors associated with manual record-keeping.

  1. Target Audience Arisan group organizers (administrators)

Individual arisan members

  1. User Stories Administrator (Organizer) As an admin, I want to create and manage multiple arisan groups, so I can organize different arisan activities.

As an admin, I want to add and remove members from an arisan group, so I can manage participant lists.

As an admin, I want to set the arisan parameters (e.g., number of participants, arisan amount, frequency), so the rules are clear.

As an admin, I want to record cash contributions from members, so the cash fund is accurately updated.

As an admin, I want to manage individual member savings, so I can track their additional deposits.

As an admin, I want to process and approve loan requests from members, so I can facilitate their financial needs.

As an admin, I want to record loan repayments, so I can track outstanding balances.

As an admin, I want to initiate the winner draw, so the winning member can be selected fairly.

As an admin, I want to view a comprehensive dashboard of each arisan group's status (cash, savings, loans, winners), so I have an overview of all activities.

As an admin, I want to generate reports on financial activities and winner history, so I can review past performance.

Member As a member, I want to view my current arisan group's status (my contributions, savings, loan status), so I can stay informed.

As a member, I want to request a loan, so I can get financial assistance when needed.

As a member, I want to view my loan repayment schedule and history, so I can keep track of my obligations.

As a member, I want to view the history of past winners, so I can see who has won previously.

As a member, I want to receive notifications about upcoming contributions, loan due dates, and winner draws, so I don't miss important events.

  1. Features and Functionality 5.1. User Management User Registration & Login:

Email/Password authentication.

Role-based access (Administrator, Member).

Profile Management:

View and edit personal information.

5.2. Arisan Group Management (Admin Only) Create Arisan Group:

Name, description.

Arisan amount per period.

Number of participants.

Frequency (e.g., weekly, monthly).

Start date.

Manage Members:

Add/remove members to/from a group.

Assign initial roles.

View Arisan Group Details:

Dashboard with summary of cash, savings, loans, and winner history.

List of all members and their status.

5.3. Cash Management (Kas) Record Contributions:

Admin can record individual member contributions for each period.

Automatic update of the group's total cash fund.

Cash Fund Overview:

Display current cash balance for each arisan group.

History of all contributions.

5.4. Savings Management (Simpanan) Deposit Savings:

Admin can record additional savings deposited by members (outside of regular arisan contributions).

Withdraw Savings:

Admin can record withdrawals from member savings.

Individual Savings Balances:

Members can view their own savings balance.

Admin can view all members' savings balances.

5.5. Loan Management (Pinjaman) Loan Request (Member):

Members can submit loan requests with desired amount and reason.

Loan Approval/Rejection (Admin):

Admin can review and approve or reject loan requests.

Set loan terms (e.g., repayment period, interest rate - if applicable, though typically arisan loans are interest-free).

Record Loan Disbursement (Admin):

Admin records the actual disbursement of the loan.

Record Loan Repayments (Admin):

Admin records individual loan repayments from members.

Loan Status Tracking:

View outstanding loan balances for each member.

View repayment history.

Repayment Schedule:

Automatic calculation of repayment schedules based on terms.

5.6. Winner Draw (Undian Pemenang) Initiate Draw (Admin):

Admin triggers the winner selection process.

System randomly selects a winner from eligible members (those who haven't won yet in the current cycle).

Winner Announcement:

Display the winning member's name.

Record the winner in the arisan history.

Winner History:

View list of all past winners for each arisan group.

5.7. Notifications Email/In-app notifications:

Upcoming contribution reminders.

Loan repayment due dates.

Winner draw announcements.

Loan approval/rejection status.

5.8. Reporting (Admin Only) Financial Summary Reports:

Cash flow (contributions, disbursements, repayments).

Outstanding loans.

Savings balances.

Winner History Reports:

List of all winners, dates, and amounts.

  1. Technical Architecture 6.1. Frontend Technology: React.js (built with Create React App)

State Management: React Context API or Redux (TBD based on complexity)

UI Framework: Material-UI, Ant Design, or similar (TBD)

Data Fetching: Axios or Fetch API

6.2. Backend Technology: n8n (Workflow Automation Tool)

Database: PostgreSQL, MySQL, or a suitable NoSQL database if n8n integrates well with it. (n8n can connect to various databases, the choice will depend on the specific needs for data relationships and scalability).

APIs: n8n will expose RESTful APIs for frontend communication.

Workflows:

User authentication and authorization.

CRUD operations for Arisan Groups, Members, Contributions, Savings, Loans, Winners.

Automated winner draw logic.

Notification triggers (e.g., sending emails).

Data aggregation for reports.

  1. Integrations Email Service: For notifications (e.g., SendGrid, Mailgun, integrated via n8n).

  2. Non-Functional Requirements 8.1. Performance Fast loading times for all pages.

Efficient processing of financial transactions.

8.2. Security Secure user authentication and authorization.

Data encryption (at rest and in transit).

Protection against common web vulnerabilities (e.g., XSS, CSRF).

Role-based access control to sensitive data and functionalities.

8.3. Scalability Ability to handle an increasing number of arisan groups and members.

Backend (n8n and database) should be able to scale as needed.

8.4. Usability Intuitive and user-friendly interface.

Clear navigation.

Responsive design for various devices (desktop, tablet, mobile).

8.5. Reliability High uptime and availability.

Robust error handling and logging.

Regular data backups.

  1. Future Enhancements (Potential Additions) Payment Gateway Integration: For automated contributions and loan repayments.

Chat/Communication Feature: Within arisan groups.

Analytics Dashboard: More in-depth insights for administrators.

Multi-language Support.

Gamification Elements: To encourage participation.