Welcome to the project. This document outlines the development workflow, role responsibilities, and strict rules for contributing.
This is a Monorepo containing both the backend and frontend.
- backend/: Express (Javascript, will be changed to typescript)
- frontend/: React (TypeScript/Vite)
- .env: Contains secrets. Never commit this file.
We follow a strict role-based hierarchy.
-
Maintainers (3rd Years):
- Role: Admin / Code Reviewer.
- Responsibilities: Reviewing PRs, requesting changes, and merging code to
main. - Only Maintainers can merge Pull Requests.
-
Developers (2nd Years):
- Role: Core Contributor.
- Access: Write access to the repository.
- Restrictions: You cannot push directly to
main. You must submit a Pull Request. You cannot merge your own PRs. - How Tos: Make a New branch and commit your feature there and open a pull request to the main.
-
Apprentices (1st Years):
- Role: Learner / Contributor.
- Access: Read-only.
- Workflow: You must Fork the repository, push changes to your fork, and submit a Pull Request from there.
Check the "Issues" tab. If you want to work on something new, create an Issue first to get approval from a Maintainer.
Never work on the main branch. Create a new branch for every feature or fix.
Naming Convention:
feat/short-description(e.g.,feat/login-page)fix/short-description(e.g.,fix/navbar-spacing)docs/short-description(e.g.,docs/update-readme)
- Write clear, descriptive commit messages.
- Example:
Added login form validation(Not:fixed code).
- Push your branch to the repository (or your fork).
- Open a Pull Request against
main. - Link the PR to the Issue it solves.
- Wait for Review.
Violating these rules may result in removal from the repository.
- Do Not Dismiss Reviews: If a Maintainer requests changes, do not dismiss their review. Fix the code and request a re-review.
- No "Sneaky" Commits: Do not push new code after receiving an approval to try and bypass review. If you push after approval, you must notify a Maintainer to review the new changes.
- Do Not Merge Your Own PR: Even if you have the button, wait for a Maintainer to merge it.
- Secrets: Never commit API keys, database passwords, or credentials. Use
.env.
- Clone the repository.
- Create a
.envfile in the root using the provided template. - Run
docker-compose upto start the database and backend (if applicable). - Navigate to
frontend/and runnpm installfollowed bynpm run dev.