Skip to content

codebreaker64/mwh-minimart-system

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒŸ MWH Empower

MWH Empower Logo


Presentation Slides โ€ข Built with React Firebase Express.js Node.js Vercel Render

๐Ÿ“– Table of Contents


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.

๐ŸŒŸ Key Features for Residents

  • ๐Ÿ“ 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.

๐Ÿ”ง Comprehensive Admin Functionality

  • ๐Ÿ—‚ 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.

โญ Key Features

For Users

  • 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

For Admins

  • 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

๐ŸŽฎ App Preview

Feature Description Demo
Tasks Feature Allows the residents to book tasks to complete for rewards such as voucher points! image
Minimart Feature Residents can use their voucher points to redeem prizes in the minimart! image
Voucher Dashboard Used by the residents to track their claimed and unclaimed vouchers image
Achievements A gamification feature to give a sense of accomplishment to residents image
Leaderboard Another gamification feature to motivate residents image
Admin Dashboard An elegant dashboard for easy data visualization for the admin image
User Management A Full suite of tools for creating, managing and updating users. image
Task Management Full suite of tools for creating, editing, and managing tasks. image
Transaction Management Centralized system for tracking all voucher transactions, point allocations, and prize redemptions. Includes detailed transaction history, filtering options, and audit trails. image

๐Ÿ”ง Technical Highlights

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

๐Ÿ“ฑ User Features

  • Browse available tasks
  • Book and complete tasks
  • Submit completion evidence
  • Track progress and achievements
  • View leaderboard rankings
  • Redeem rewards in minimart
  • View transaction history

๐Ÿ‘ฉโ€๐Ÿ’ผ Admin Features

  • Monitor system metrics
  • Manage tasks and rewards
  • Review task completions
  • Handle user management
  • Control inventory
  • Process redemptions
  • Generate reports

๐Ÿš€ Getting Started

  1. 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
  2. Clone this repository:

    git clone https://github.com/your-repo-name.git
    cd your-repo-name
  3. 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
  1. 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

๐ŸŒ Deployment

The application is deployed across two platforms for optimal performance and reliability:

Frontend Deployment Vercel

  • 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

Backend Deployment Render

Deployment Configuration

  • 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

๐Ÿ› ๏ธ Technology Stack

  • Frontend: React, Tailwind CSS
  • Backend: Node.js, Express.js
  • Database: Firebase Firestore
  • Storage: Firebase Storage
  • Authentication: Firebase Auth
  • Deployment: Vercel (Frontend), Render (Backend)

๐Ÿ‘ฅ Team

Gabriel, All-seeing
Gabriel Kuek
Rafael Profile Picture
Rafael Macam
Kai Jie Picture
Fong Kai Jie
Calvin Profile Picture
Calvin Septyanto

Made by Hack Tuah Script on That Thang

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 90.1%
  • TypeScript 9.7%
  • Other 0.2%