A full-stack web application for organisations and developers to seamlessly manage substantial software projects. Written in Node.js, using the MERN stack (MongoDB, Express.js, React, Node.js).
This project was developed for my Software Engineering Group Project during my University degree. It has been anonymized by removing the original git history along with documentation pdf files.
- Dependency based task modelling of projects using PERT and Critical Path method
- Live risk management including prediction and preventative suggestions. Measures risk of railure, and forecasts project completion using statistical data
- Developer surveying to evaluate engagement with project. Collected and summarized to the project manager with in a statistics dashboard
- Integration with GitHub accounts to measure project quality, progress and engagement based on commits, active issues and static code anaylsis.
Refers to software implementation details.
- ant.design React component library
- Docker compose to have a consistent development and testing environment
- GitHub Actions for a CI/CD pipeline using Docker
- MVC architectural pattern using Express.js as a REST API to implement controllers, React to create Views, and mongoose to create MongoDB and Typescript compatible models
- Role-based authorization with Express.js to ensure correct access and permissions.
- Use of API connectors in the frontend to dynamically control when to call the backend http API or use client cached data.
- Unit and integration testing of backend and frontend carried out using Jest.
Use the docker-compose file to run the code locally
-
Install docker
-
Ensure docker desktop (or the docker daemon if using a terminal) is running
-
Ensure all applications using ports 3000 and 8000 are closed
-
Run the command to create a production build of the app and start it:
docker compose up --build
-
Wait for docker to build the codebase (may take around 5-6 minutes the first time and then around 2 minutes for subsequent builds)
-
Navigate to
http://localhost:3000
in a browser to view the running application
-
Stopping the application: Ctrl + C or:
docker compose down
-
Delete saved images:
docker image prune -a
This is the code for the frontend of the application, and includes the following basic structure
src/API
- The API Connectors for the frontendsrc/Components
- The React components used for displaying the frontendsrc/Models
- Entities and Object definitions used by the frontendsrc/Services
- Services used by the frontend to complete common taskssrc/test
- Unit tests for the frontend
This is the code for models used in both the backend and the frontend, and includes the following basic structure
build-models
- The models used by the application after the common package has been builtmodels
- The Mongoose compatible TypeScript models which can be edited
This is the code for the backend of the application, using common Express.js practice:
middlewares
- Backend middlewaresmodels
- Entities and Object definitions used by the backendroutes
- Definitions of API endpointsservices
- Services used by the backend to perform taskstypes
- TypeScript type overrides and misc. type definitions that are not models
- Running tests requires testing dependencies.
- To install them, in the backend, frontend and common directories, run:
npm install
- Then run in the location you wish to test
npm test
- Project overview dashboard
- Project task view
- Project Gantt Chart
- Organisation skill overview
- Swagger UI API Endpoints
- Initial UML Class diagram. This was expanded on during development.
Want to see more? Run the app youself.