Student ID: SN322648 Date: April 2026
This is a MERN-stack scrum project management dashboard. The application features user authentication and a dynamic dashboard where users can create teams, manage project assignments, and track prioritized user stories.
- Authentication: User signup, login, and sign-out functionality.
- Team Management: Create teams and build rosters using a multi-select user interface.
- Project Tracking: Assign projects to specific product owners, managers, and teams.
- User Stories: Generate priority-based user stories nested under specific projects.
- Dynamic Dashboard: A conditional UI that renders a user's specific teams, nested projects, and associated user stories upon login.
You must have Node.js and npm installed on your computer.
- Open your terminal and go to the directory:
source_code/server - Run the command:
npm install - Create a file named
.envin the server folder. - Inside that file, add your database string:
MONGO_URI=your_mongodb_connection_string - Start the server by running:
node Server.js
- Open a second terminal and go to the directory:
source_code/client - Run the command:
npm install - Create a file named
.envin the client folder. - Inside that file, add the API address:
REACT_APP_API_URL=http://localhost:9000 - Start the React application by running:
npm start
I have implemented the following extra modules to ensure the project functions:
- REACT-ROUTER-DOM: Used to handle client-side routing and navigation across different UI components without page reloads.
- REACT-SELECT: Used to implement the multi-select dropdown feature for team roster assignments.
- AXIOS: Used by the React frontend to send asynchronous HTTP requests to the backend API.
- DOTENV: Used to hide sensitive database passwords and configuration URLs via environment variables.
- CORS: Used to allow the frontend (port 3000) and backend (port 9000) to communicate seamlessly.
- MONGOOSE: Used to connect the Node server to the MongoDB database, define relational data schemas, and execute queries.
- Environment Variables: All passwords and API addresses are stored in
.envfiles to keep them private. - Git Ignore: A
.gitignorefile is included to prevent large dependency folders (node_modules) and private secrets (.env) from being uploaded to GitHub. - Clean Architecture: The project is logically separated into
clientandserverdirectories for maintainability and organization.