Page 1 of 8
System Requirements Document (SRD)
Project Name: happy-web
1. Introduction
The purpose of this document is to define the system requirements for happy-web, a private, web-based application designed for internal use by the Gulf Community Barju (GCB). The system will provide a secure, role-based platform for managing members, recording donations, tracking expenses, and monitoring project progress. It will also include features for transparency, reporting, and notifications, all tailored to the needs of the GCB community.
This document outlines the functional and non-functional requirements, user personas, visual design, technical architecture, and constraints for the development of the happy-web website.
Page 2 of 8
2. System Overview
The happy-web system is a private, browser-based application accessible only to authenticated users. It is designed to facilitate the following:
- Member Management: Admins can manage member profiles, including adding, editing, and soft-deleting records.
- Donation Recording: Admins can manually input donation details, including multi-currency support and proof uploads.
- Expense Tracking: Admins can log expenses, categorize them, and link them to specific projects.
- Project Management: Admins can create and manage projects, set budgets, and track progress.
- Transparency: Members can view donation records with search and filter options.
- Audit Logs: All actions are tracked for accountability.
- Reports: Generate and export reports in PDF or Excel formats.
- Notifications: Admins can post announcements visible to all users.
The system will be deployed on Firebase Hosting and will leverage Firebase services for authentication, database management, and storage.
3. Functional Requirements
Authentication System
- As Admin, I should be able to create user accounts with role-based access (Super Admin, Admin, Member).
- As a User, I should be able to log in using email and password.
- As Admin, I should be able to manage user roles and permissions.
Page 3 of 8
Member Management
- As Admin, I should be able to add, edit, and soft-delete member profiles.
- As Admin, I should be able to input the following member details:
- Full Name
- Country (Qatar, Saudi, UAE, Kuwait, Malaysia, Oman, Nepal)
- Phone Number
- Profile Photo
- Member ID
- Family Group (optional)
- isDeleted flag
Donation System
- As Admin, I should be able to manually record donations with the following fields:
- Member ID / Name
- Country
- Amount (Original)
- Currency (QAR, AED, KWD, SAR, OMR, MYR, NPR)
- Conversion Rate (manual input)
- Final Amount (NPR)
- Date
- Receipt ID (auto-generated)
- Proof Image (optional)
- Entered By
Page 4 of 8
Expense Management
- As Admin, I should be able to log expenses with the following fields:
- Amount (NPR)
- Category
- Description
- Date
- File uploads
Project Management
- As Admin, I should be able to create and manage projects with the following fields:
- Project Name
- Budget
- Used Amount
- Progress %
- Linked expenses
- Files
Dashboard
- As Admin, I should see a dashboard with the following:
- Total Donations (NPR)
- Total Expenses
- Remaining Balance
- Monthly donations (line chart)
- Expense breakdown (pie chart)
Page 5 of 8
Transparency System
- As Member, I should be able to view donation records with the following details:
- Donor name
- Amount (original + NPR)
- Date
- As Member, I should be able to search by name and filter by country/date.
Audit Log System
- As Admin, I should be able to view all actions logged with the following details:
- Action
- User
- Old value
- New value
- Timestamp
Notifications
- As Admin, I should be able to post announcements visible on the dashboard.
Reports
- As Admin, I should be able to generate and export the following reports:
- Member report
- Monthly report
- Expense report
Page 6 of 8
4. User Personas
-
Super Admin:
- Full access to all features, including user management and system settings.
-
Admin:
- Can manage members, donations, expenses, projects, and notifications.
-
Member:
- View-only access to donation records and announcements.
5. Visuals Colors and Theme
Color Palette
- Background: #F5F7FA
- Surface: #FFFFFF
- Text: #1A1A1A
- Accent: #0F9D58
- Muted: #B0BEC5
Theme
The design will be clean, simple, and village-friendly, with a sidebar dashboard layout and mobile responsiveness.
Page 7 of 8
6. Signature Design Concept
The happy-web homepage will feature an interactive village map as the central design element. Each section of the website (e.g., Members, Donations, Projects) will be represented as a building or landmark on the map. Users can click on these landmarks to navigate to the respective pages.
Details:
- Animations: Hovering over a landmark will display a tooltip with the section name. Clicking will trigger a smooth zoom-in transition to the section.
- Color Shifts: The map will subtly change colors based on the time of day (e.g., warm tones for morning, cool tones for evening).
- Micro-interactions: Icons and labels will animate gently when interacted with, creating a lively and engaging experience.
7. Non-Functional Requirements
- The system must be responsive and work seamlessly across all modern browsers.
- Data must be stored securely in Firebase Firestore.
- The website should load within 3 seconds on a standard internet connection.
- The codebase must be modular and beginner-friendly.
8. Tech Stack
- Frontend: React.js
- Backend: Firebase (Authentication, Firestore, Storage, Hosting)
- Database: Cloud Firestore
- Deployment: Firebase Hosting
Page 8 of 8
9. Assumptions and Constraints
- The system will not support online transactions or payment processing.
- All data will be manually entered by Admins.
- The system will operate within the limits of Firebase's free Spark Plan.
10. Glossary
- Admin: A user with permissions to manage data and system settings.
- Member: A user with view-only access to specific data.
- Firestore: A NoSQL cloud database provided by Firebase.
- NPR: Nepalese Rupee, the base currency for all financial records.
- Soft Delete: A method of marking data as deleted without permanently removing it.
No comments yet. Be the first!