Welcome to the Boardr repository! This project is designed to create a platform for board game lovers to connect, share their games, and organize events. Whether you're a Player or a Game Owner, this app will help you manage your board game experiences seamlessly.
The app supports two types of accounts:
- Players: Can browse games, participate in events, and leave a review.
- Game Owners: Can manage their board game collections, receive borrowing requests, and track lending history.
- User Authentication: Users must log in to access the app's features.
- Personal Account Page: Displays account type, name, owned games (for Game Owners), and event participation history.
- Game Management: Game Owners can manage their collections, accept/decline borrowing requests, and track lending history.
- Event Creation: Users can create events with details like date, time, location, description, maximum participants, and the board game to be played.
- Event Registration: Users can register for events if slots are available.
- Game Browsing: All users can browse a list of available board games, see reviews, and check ownership details.
- Java version 17 (or the version your project uses)
- Gradle
- PostgreSQL
- Node.js
- Ensure that the above requirements are met and installed properly on your system.
- Clone the repository:
git clone https://github.com/McGill-ECSE321-Winter2025/project-group-12.git cd boardr-backend - Create a file named
.envunder/boardr-backend - Paste the following:
DB_USERNAME=postgres DB_PASSWORD=boardr
- Build the project:
./gradlew build
- Run the project:
./gradlew bootRun
- The backend application will be deployed to http://localhost:8080/
- If you wish to only run integration tests, use the following:
./gradlew integrationTest
- Go to the frontend directory:
cd ../boardr-frontend/ - Start the frontend locally:
npm install npm run dev
- The frontend application will be deployed to http://localhost:5173/
Warning
Boardr uses ports 5432 (Postgres), 8080 (Backend) and 5173 (Frontend). Other ports will be used if several instances of the project exist. Make sure to kill these instances beforehand to avoid conflicting ports.
Before running the application, ensure that your database is properly configured. The application uses the following default credentials for the database:
- Database Username:
postgres - Database Password:
boardr
You can update these credentials in the application.properties file located in the src/main/resources directory.
Example:
spring.datasource.username = <your-username>
spring.datasource.password = <your-password>| Name | Role | Deliverable 1 Effort (hours) | Deliverable 2 Effort (hours) | Deliverable 3 Effort (hours) | Total Effort (hours) |
|---|---|---|---|---|---|
| Kyujin Chu @3MinCurry | QA Tester | 8 | 12 | 8 | 28 |
| Jun Ho Oh @Junho332 | QA Tester | 8 | 12 | 8 | 28 |
| David Vo @Kasamix | Project Manager | 8 | 12 | 8 | 28 |
| David Zhou @Rampex1 | Software Developer | 8 | 12 | 8 | 28 |
| Eric Deng @Lawnless1 | Software Developer | 8 | 12 | 8 | 28 |
| Jione Ban @Ji-One1 | Software Architect | 8 | 12 | 8 | 28 |
| Yoonjung Choi @Yoonicornn | QA Developer | 8 | 12 | 8 | 28 |
- Project Deliverable 1: Domain Model and Report
- Requirements Model: All
- Domain Model Generation: Yoon, Kyujin, David Vo, David Zhou
- Domain Model Code: Jione, David Zhou, Eric Deng
- Persistence Layer: David Zhou, Jione
- Persistence Layer Testing: Yoon, Kyujin, Jun Ho
- Project Management: Yoon, David Zhou, David Vo
- Project Deliverable 2: Report
- REST APIs:
- User Account: Kyujin
- Borrow Request & Review: Yoon
- Board Game & Board Game Instance: Jun Ho
- Event & Registration: David Vo
- Unit Testing:
- User Account: Eric
- Borrow Request & Review: Kyujin
- Board Game & Board Game Instance: David Zhou
- Event & Registration: Jun Ho
- Integration Testing: Ji One, Eric, David Zhou, David Vo, Yoon
- User Account: David Vo
- Borrow Request & Review: Eric
- Board Game & Board Game Instance: Jione
- Event & Registration: David Zhou
- Project Management:
- REST APIs: David Vo
- Software QA Plan and Report: Yoon, Kyujin
- README.md: David Vo, David Zhou
- Javadoc: Eric, Jione
- Meeting Minutes: Jun Ho
- Project Report: Kyujin
Deliverable 3: Web Frontend Implementation, Integration with Backend Services, Build System and CI Specification, and Project Management
- Project Deliverable 3: Report
- Web Frontend Implementation: Yoon, Kyujin, David Zhou, David Vo
- Frontend UI/UX Design: David Zhou
- Initial Setup of Frontend Implementation: David Vo
- Browse Available Board Games Page: Kyujin
- Borrow a Board Game Page: Kyujin
- Browse Available Events Page: Yoon
- Personal Profile Page: David Zhou
- Borrowing History Page: Yoon
- Integration with Backend Services: David Zhou, David Vo, Eric, Jione, Jun Ho
- Reviews Modal: Jione
- Write a Review Modal: Jione
- Request Form Modal: Eric
- Add Event Modal: Eric
- Requests Modal: Jun Ho
- Event Details Modal: Jun Ho
- Login/ Sign Up Modal: David Vo
- Registration Modal: David Zhou
- Add Board Game Modal: David Zhou
- Build System and CI Specification: David Vo
- Backend & Frontend Build Documentation: David Vo
- Project Management: Yoon, David Vo, David Zhou
- README.md: Yoon, David Vo
- Meeting Minutes: Yoon
- Project Report: Yoon, Jione
- Project Board Management: David Zhou, Yoon