Skip to content

Latest commit

 

History

History
111 lines (82 loc) · 2.75 KB

File metadata and controls

111 lines (82 loc) · 2.75 KB

Contributing to AIPCSS

Thank you for your interest in contributing to AIPCSS (AI-Powered Smart Classroom Scheduling System)! This guide will help you get started.

Table of Contents

Code of Conduct

Please read and follow our Code of Conduct. Be respectful, inclusive, and constructive in all interactions.

Getting Started

  1. Fork the repository on GitHub
  2. Clone your fork locally:
    git clone https://github.com/YOUR_USERNAME/AIPCSS.git
    cd AIPCSS
  3. Create a branch for your changes:
    git checkout -b feature/your-feature-name

Development Setup

Backend

cd backend
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt
python run.py

Frontend

cd frontend
npm install
npm run dev

Making Changes

  • Follow the existing code style and patterns
  • Write clean, readable, and well-documented code
  • Add appropriate comments for complex logic
  • Ensure all existing tests pass before submitting
  • Test your changes thoroughly across different scenarios

Commit Messages

Use clear and descriptive commit messages following this format:

type(scope): brief description

Detailed explanation if needed.

Types: feat, fix, docs, style, refactor, test, chore

Examples:

feat(scheduler): add genetic algorithm crossover operators
fix(auth): resolve token expiration edge case
docs(api): update scheduling endpoint documentation

Pull Request Process

  1. Ensure your branch is up to date with main:
    git fetch origin
    git rebase origin/main
  2. Push your changes to your fork
  3. Open a Pull Request against the main branch
  4. Provide a clear description of the changes and their purpose
  5. Respond to review feedback promptly
  6. Ensure CI checks pass (if applicable)

Reporting Bugs

Please open a Bug Report with:

  • A clear description of the bug
  • Steps to reproduce
  • Expected vs. actual behavior
  • Screenshots if applicable
  • Your environment (OS, Node.js version, Python version)

Suggesting Features

Please open a Feature Request with:

  • A clear description of the feature
  • The motivation or use case
  • Any proposed implementation ideas

Thank you for contributing!