- ๐ Key Features for Residents
- ๐ง Comprehensive Admin Functionality
- โญ Key Features
- ๐ฎ App Preview
- ๐ง Technical Highlights
- ๐ฑ User Features
- ๐ฉโ๐ผ Admin Features
- ๐ Getting Started
- ๐ Deployment
- ๐ ๏ธ Technology Stack
- ๐ฅ Team
MWH Empower is an innovative mobile application designed to support youth rehabilitation and reintegration into society. Through a gamified task-reward system, users can earn points by completing various tasks and redeem them for rewards, fostering positive behavior and life skills development.
- ๐ Task Booking for Rewards: Residents can browse and book various community or self-improvement tasks, earning voucher points upon completion.
- ๐ Rewards Redemption: Accumulated voucher points can be redeemed for exciting prizes and necessities at a dedicated in-app minimart.
- ๐ Gamification Elements:
- ๐ Leaderboards: Encourage friendly competition by showcasing top-performing participants.
- ๐ Achievements: Unlockable badges motivate users by recognizing their milestones and consistent efforts.
- ๐ Tasks: Create, assign, and monitor tasks to ensure alignment with program goals.
- ๐ฆ Inventory: Maintain up-to-date records of minimart items, ensuring prize availability.
- ๐ฅ Users: Monitor user activity, progress, and performance.
- ๐ธ Transactions: Track point allocations and redemptions with full transparency.
- ๐ Minimart: Manage prize listings, stock levels, and voucher point requirements.
- ๐ Dashboard: Gain actionable insights through an intuitive and easy-to-use dashboard for overseeing overall program performance.
- Task Management: Browse and book available tasks
- Task Completion System: Submit photo evidence of completed tasks
- Reward System: Earn points and redeem vouchers
- Gamification Elements:
- Achievement system
- Leaderboard rankings
- Progress tracking
- Minimart Integration: Browse and redeem rewards using earned points
- Comprehensive Dashboard: Monitor user activity and system metrics
- Task Management: Create, edit, and manage available tasks
- User Management: Track user progress and manage accounts
- Inventory Control: Manage minimart items and vouchers
- Transaction History: Track all point transactions and redemptions
This project implements numerous advanced web development concepts:
- MVC Architecture: Clean separation of concerns
- Firebase Integration:
- Firestore for real-time data management
- Storage for task completion photos
- Authentication for secure user management
- Express Backend:
- RESTful API design
- Middleware implementation
- Error handling
- React Frontend:
- Component-based architecture
- State management
- Responsive design
- Security Features:
- Role-based access control
- Input validation
- Secure file handling
- Browse available tasks
- Book and complete tasks
- Submit completion evidence
- Track progress and achievements
- View leaderboard rankings
- Redeem rewards in minimart
- View transaction history
- Monitor system metrics
- Manage tasks and rewards
- Review task completions
- Handle user management
- Control inventory
- Process redemptions
- Generate reports
-
Install the Latest Node.js Version:
- Visit the Node.js Downloads page and download the latest LTS version for your operating system.
- Alternatively, install it using a package manager:
- Windows: Use nvm-windows:
nvm install lts nvm use lts
- macOS/Linux: Use nvm (Node Version Manager):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash nvm install --lts nvm use --lts
- Verify installation:
node -v npm -v
-
Clone this repository:
git clone https://github.com/your-repo-name.git cd your-repo-name
-
Terminal 1: Setup for the Client:
- Navigate to the client directory:
cd client/mwh-minimart-system
- Install latest node version with Long-Term Support:
nvm install --lts
- Install client dependencies:
npm install
- Create .env file at server folder:
touch .env
- Key in values inside the .env file:
API_KEY= AUTH_DOMAIN= PROJECT_ID= STORAGE_BUCKET= MESSAGING_SENDER_ID= APP_ID= MEASUREMENT_ID=
- Start the client development server:
npm run dev
- Terminal 2: Setup for the Server:
- Navigate to the server directory:
cd server
- Install server dependencies:
npm install
- Create .env file at server folder:
touch .env
- Key in values inside the .env file:
API_KEY= AUTH_DOMAIN= PROJECT_ID= STORAGE_BUCKET= MESSAGING_SENDER_ID= APP_ID= MEASUREMENT_ID=
- Start the server development server:
npm run dev
The application is deployed across two platforms for optimal performance and reliability:
- URL: https://mwh-minimart-system.vercel.app
- Platform: Vercel
- Technology Stack:
- React.js
- Tailwind CSS
- Firebase SDK
- Vite
- Features:
- Automated deployments
- Edge network distribution
- SSL encryption
- Real-time updates
- Responsive design
- URL: https://mwh-minimart-system-backend.onrender.com
- Platform: Render
- Technology Stack:
- Node.js
- Express.js
- Firebase Admin SDK
- Features:
- Auto-scaling
- Continuous deployment
- Health checks
- Secure environment variables
- API monitoring
- Both frontend and backend deployments are configured for continuous integration and deployment (CI/CD)
- Environment variables are securely managed through respective platform dashboards
- SSL certificates are automatically provisioned and renewed
- Regular health checks ensure system reliability
- Automated backups and rollback capabilities
- Frontend: React, Tailwind CSS
- Backend: Node.js, Express.js
- Database: Firebase Firestore
- Storage: Firebase Storage
- Authentication: Firebase Auth
- Deployment: Vercel (Frontend), Render (Backend)
Gabriel Kuek |
Rafael Macam |
Fong Kai Jie |
Calvin Septyanto |
Made by Hack Tuah Script on That Thang