- Objective:
Our project is to develop a web application for DePaul University students to find and connect with potential roommates. The app will provide a platform for users to create profiles, input living preferences, and match with other students based on compatibility. - Tech Stack:
- Backend: Spring Boot
- Database: PostgreSQL
- Frontend: React
- Matthew - Frontend components for messaging page, agreement page, and notification system.
- Cristian - Backend, enabling messaging services between matched users, setting up notifications to alert users when new matches are found, etc. Creating agreement between users when establishing roommate partnership. Additional features as the project progresses.
- Nathan - Backend and database configurations/setup. Utilizing statistical models to determine an efficient roommate matching system, and write microservices for server to database interactions for search/filter operations to be utilized by frontend components.
- William - In addition to setting up requiremnts, documentation, and architecture for the project I'll be working on both the Spring backend and React frontend for authentication, roommate matching, and search/filtering features. For the backend, I’ll handle setting up authentication using JWT, and work with Nate on the matchmaking algo for roommate matching.
- Harshita: Backend, managing user preferences such as setting criteria (Ex: cleanliness, location, sleep schedules, etc); allow users to set, view, update preferences and that preferences are presented in an intuitive manner Frontend: home page + dashboard ui/design, the organization of preference form display
- Saqib: Backend: facilitate profile creation, updating, and retrieval. Frontend: implement intuitive forms, allowing profile details to be displayed and edited.
- Project Repository:
GitHub Link to Repository - Repository Structure:
Frontend/
: Contains React components and frontend logic.Backend/
: Spring Boot code for API endpoints and business logic.Database/
: SQL seeding scripts and database schema.Documentation/
: Contains project and meeting documentation.
- Feature Branch Workflow: Each dev should work on their own feature branch, which will eventually be merged into the
main
branch through a pull request. - Pull Request Process:
- Before opening a PR, developers must pull the latest changes from
main
into their feature branch to minimize potential conflicts:git checkout main git pull origin main git checkout feature/your-feature git merge main
- If conflicts arise during the merge, the developer is responsible for resolving them in their feature branch.
- Once conflicts are resolved, the developer updates the branch and pushes the changes to the remote repository:
git add . git commit -m "Resolve merge conflicts" git push origin feature/your-feature
- The PR is then reviewed by other team members, and after approval, the feature branch is merged into
main
.
- Before opening a PR, developers must pull the latest changes from
- If there is a disagreement regarding the implementation or functionality during the pull request review, the following steps will be taken:
- Discuss the issue in the PR comments or during the next scheduled meeting and solve it with a dicord poll.
- Primary Tool:
- Discord Server: The team will use Discord for communication.
- Scheduled Meetings:
- Weekly virtual meetings via '#meeting-voice'channel in discord server.
- Random popup meetings can be called if something really really bad is occuring and decisions need to be made.
We will have 2 meetings per week on Thursday(5pm) and Sunday(1pm).
- Meeting 1:
- Date: 9/15/2024
- Agenda: Brainstorming app ideas, role assignment, cloning repo, getting repo perms and access.
- Outcomes: Decided on app concept, assigned roles, cloned the starter repo.
- Meeting 2:
- Date: 9/19/2024
- Agenda: New members introduction, discuss hybrid role system, go over feature groups, recommended IDEs/software, documentation walkthrough, code walkthrough, verify repo access and environment setup.
- Outcomes: New members introduced, role structure clarified, IDEs/software recommended, basic code reviewed, repo access and environment verified.
More soon...
- Editor:
The team can use whatever IDE's or text-editors they are comfortable with but thre recommended editor will be Intelij IDEA Ultimate Edition for Java and Spring Boot code and Visual Studio Code for Frontend/React code. - Project Scope:
The final project scope includes user authentication, profile management, roommate matching, and messaging.