The Academic Team Management
application is used to automate many of the facilities of managing a large class of multi-person groups and supports the following use cases:
- Creating lists of projects with a title, description, and other metadata
- Importing lists of students from Excel
- Enabling students to form teams, express interest in projects, express an interest in being matched with other students, etc...
- Allowing the professor and TAs to communicate with students using chat
- Allowing the professor and TAs to take notes about progress, presentations, etc...
- Exporting the data to Excel sheets
- Allowing the professor or TAs to input grades
The application is expected to be open-source and allow other professors from different educational institutions to adopt it as their project management system.
For more information check the general and design documents.
Make sure to have these technologies installed in your system
1. Docker
2. NodeJs
3. Python
For local development, try to build each service individually
# Build the database first
$ ./gradlew startMongo
# Build the server, make sure to add the password of the DB in the ./scripts/runBackendTests.sh file
$ ./gradlew runBackendLocally
# Build the frontend
$ ./gradlew runFrontendLocally
For prod development, build using all the services using docker-compose
# To start the app
$ ./gradlew composeUp
# To stop the app
$ ./gradlew composeDown
# Unit tests
$ ./gradlew runUnitTests
# Unit tests
$ ./gradlew runReactUnitTests
# E2E tests
$ ./gradlew runEndToEndTests
You can lint the code locally.
$ ./gradlew runReactLint
See DevOps section for more information