This is a full-stack web application for managing complaints, meetings, and notifications at UNZA. It consists of a Node.js/Express backend and a React frontend.
- Node.js (v18 or newer recommended)
- npm (v9 or newer)
- MySQL database
- Navigate to the backend folder:
cd backend - Install dependencies:
npm install
- Create a
.envfile (see.env.exampleif available) and configure your database and Twilio credentials. - Start the backend server:
or for production:
npm run dev
npm start
- express, cors, helmet, morgan, dotenv, mysql2, bcrypt, jsonwebtoken, express-rate-limit, multer, twilio, validator, body-parser, isomorphic-dompurify, express-validator
- Navigate to the frontend folder:
cd frontend - Install dependencies:
npm install
- Start the frontend development server:
The app will run at http://localhost:3000
npm start
- react, react-dom, react-scripts, axios, react-router-dom, react-redux, @reduxjs/toolkit, react-hook-form, yup, react-toastify, date-fns, @hookform/resolvers
- Start the backend server (see above).
- Start the frontend server (see above).
- Access the app at http://localhost:3000.
- Log in as a user, staff, or admin to access different features:
- Submit and track complaints
- Book and manage meetings
- Receive notifications
- Admins can assign complaints and manage users
Create a MySQL database and configure the connection in your backend .env file. Run any provided migration scripts to set up tables for users, complaints, meetings, and notifications.
- For Twilio SMS notifications, configure your Twilio credentials in
.env. - For production, build the frontend with
npm run buildand serve it with a static server or via the backend.
For more details, see the source code and comments in each folder.
This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify