Files

264 lines
7.4 KiB
Markdown
Raw Permalink Normal View History

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.
3. Target Audience
Arisan group organizers (administrators)
Individual arisan members
4. 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.
5. 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.
6. 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.
7. Integrations
Email Service: For notifications (e.g., SendGrid, Mailgun, integrated via n8n).
8. 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.
9. 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.