MTC's Fall 2025 Campus Map project!
There are two ways to set up your development environment and begin contributing to this project: using the provided Docker Compose file, or installing all required components manually.
This method runs all dependencies (Node.js 22, Python 3.11, MongoDB 7) in two Docker containers: one for the development environment and one for MongoDB. You do not need to install these manually; you only need to install Docker.
- Install Docker. If you have never done this before, the easiest way is to install Docker Desktop.
- Ensure Docker is running.
- Clone this repository.
- Inside the repository directory, run:
docker compose up. Wait for everything to install and for all 3 services to start running. - Navigate to http://localhost:3000 and you should see the app running! Also, the API should be accessible at http://localhost:3001.
- To populate the database with location data, go to http://localhost:3001/api/init-db.
Note: To get IntelliSense working and run commands inside the dev container easily, we recommend using VS Code's Dev Containers extension. A Dev Containers configuration has been provided. Simply install the extension, open this repository as a folder normally, hit Ctrl+Shift+P (or Cmd+Shift+P on Mac), and select the "Dev Containers: Rebuild and Reopen in Container" option.
For this method, you will have to install Node.js, Python, and MongoDB for your operating system manually. This project has been tested to work with Node 22 and Python 3.11; other versions may suffice but there is no guarantee. Once you have installed these, do the following:
- Open a terminal in your repository directory.
- Run
npm install. - Create a Python virtual environment, ensure it is active, and run
pip3 install -r requirements.txt. - Create a .env file at the root of the repository with the following contents:
NEXT_PUBLIC_API_URL=http://localhost:3001 - Run
npm run devto start both the frontend and backend.
We use GitHub Projects, GitHub's built-in project management system, to manage this project. In GitHub Projects, each work item (or 'ticket') corresponds to an issue in this GitHub repository. To work on an issue, do the following:
- In the navigation bar at the top of the page, click on 'Issues'.
- Find the issue you want to work on and open it. Assign yourself to the issue (see top-right corner of page).
- It is very important to do this so that other members know you are working on this issue!
- In the navigation bar, go to 'Projects', then 'Campus Map'.
- Find the issue you just assigned to yourself and move it to the 'In progress' column.
- Create a branch in the repository for your issue, naming it using the following convention:
your-username/short-description. Example:qad114/create-login-page. Do all your work in this branch. - When your changes are ready to be merged, create a pull request to merge them to the main branch!