First off, thank you for considering contributing to the TimeTable Management System! It's people like you that make the open-source community such an amazing place to learn, inspire, and create.
- Node.js (v16 or higher)
- Python (v3.8 or higher)
- MongoDB (Local or Atlas)
- Git
-
Fork the repository on GitHub.
-
Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/auto-timetable.git cd auto-timetable -
Set up the Backend:
cd backend npm install # Create .env file based on .env.example
-
Set up the Frontend:
cd frontend npm install -
Set up the Scheduler (Python):
cd scheduler_core python -m venv venv # Activate venv (Windows: venv\Scripts\activate, Unix: source venv/bin/activate) pip install -r requirements.txt
-
Create a Branch: Always work on a new branch for your changes.
git checkout -b feature/amazing-feature # or git checkout -b fix/annoying-bug -
Make your changes: Write clean, maintainable code.
-
Commit your changes: Use descriptive commit messages.
git commit -m "feat: add new algorithm for lab scheduling" -
Push to your fork:
git push origin feature/amazing-feature
- Go to the original repository on GitHub.
- Click on "New Pull Request".
- Select your branch and compare it with the
mainbranch. - Description: Clearly explain what your changes do.
- Screenshots: If you changed the UI, please include screenshots.
- Link Issues: If this fixes a bug, link the issue (e.g., "Fixes #123").
- JavaScript/React: We follow standard ESLint configurations. Please ensure your code is formatted (Prettier is recommended).
- Python: Follow PEP 8 guidelines for the scheduler core.
- Commits: We prefer Conventional Commits (e.g.,
feat:,fix:,docs:,style:).
If you find a bug, please create an issue including:
- Steps to reproduce
- Expected behavior
- Actual behavior
- Screenshots (if applicable)
Have an idea? Open an issue with the tag enhancement and describe your proposal.
Thank you for your contributions!