My Dorm Store is an e-commerce platform that which designed to simplify the dorm move-in process for canadian post-secondary students. It allows students (and their families to customize and bundle essential items based on their dorm specifications, with a user-friendly web interface tailored for mobile and desktop use.
- Dorm-specific recommendations (e.g., bed size, package types)
- Easy checkout and delivery system
- Admin dashboard for inventory tracking and updates
-
Clone the repository
git clone https://github.com/UTSC-CSCC01-Software-Engineering-I/term-group-project-c01s25-project-my-dormstore cd term-group-project-c01s25-project-my-dormstore -
Install dependencies
-
Install frontend and backend dependencies:
#frontend cd frontend npm install #backend cd backend npm install
- Set Up Environment Variables
-
Frontend (frontend/.env):
REACT_APP_API_URL=http://localhost:5001
-
Backend (backend/.env):
PORT=5001 PG_USER=your_db_user PG_PWD=your_db_password PG_DATABASE=your_db_name PG_HOST=localhost PG_PORT=5432
-
If you're using a custom port (e.g., 5002 instead of 5001), make sure:
- In
backend/.env: setPORT=5002 - In
frontend/.env: setREACT_APP_API_URL=http://localhost:5002
- In
-
Create PostgreSQL Database
createdb -U postgres mydormstore
-
Initialize Database Table and Functions
cd backend npm run setup-db npm run setup-functions npm run setup npm run run-seed- Create all necessary tables from schema.sql
-
Run the Application
-
Open two separate terminals to run the backend and frontend servers
#Backend Servier cd backend npm run dev #frontend Server cd frontend npm start)
(Optional) Dev Commands backend
-
Remove all products
npm run clear-products
-
Remove all packages
npm run clear-packages
- Fork the repository
- Create a new feature branch:
git checkout -b feature/{feature-name} - Commit changes with clear commit messages
- Push and open a Pull Request into the
developbranch - Reference the related issue number (e.g.,
Fixes #10in PR description
We use Git Flow to manage development:
main: for production-ready codedevelop: latest development codefeature/{name}: new featuresbugfix/{name}: bug fiexesrelease/{name}: prepare for a new releasehotfix/{name}: for critical fixes on production code (main)
All tasks are tracked using Github Issues for tracking features, bugs, and enhancements. All tasks must be linked to an issue. Each issue should be assigned, labled (e.g., frontend, backend, bug, enhancement), and referenced in pull requests where applicable.