Thank you for considering contributing to StudentSathi! We welcome contributions from the community.
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR-USERNAME/StudentSathi.git cd StudentSathi - Install dependencies:
npm run install:all
npm run dev:frontendFrontend runs on http://localhost:8080
npm run dev:backendBackend runs on http://localhost:3001
# Generate Prisma client
npm run prisma:generate
# Run migrations
npm run prisma:migrate
# Open Prisma Studio
npm run prisma:studio-
Create a new branch:
git checkout -b feature/your-feature-name
-
Make your changes following our code style:
- Use TypeScript for all new code
- Follow existing naming conventions
- Add comments for complex logic
- Write tests for new features
-
Commit your changes:
git add . git commit -m "feat: add your feature description"
Use conventional commit format:
feat:- New featurefix:- Bug fixdocs:- Documentation changesstyle:- Code style changes (formatting, etc.)refactor:- Code refactoringtest:- Adding or updating testschore:- Maintenance tasks
-
Push to your fork:
git push origin feature/your-feature-name
-
Open a Pull Request on GitHub
Before submitting a PR, ensure:
- Code builds without errors
- All existing tests pass
- New features have tests
- No TypeScript errors
- No ESLint warnings
# Run tests
npm run test
# Build frontend
npm run build:frontend
# Build backend
npm run build:backend- TypeScript: Use strict mode
- Formatting: Prettier with default settings
- Linting: ESLint with provided configuration
- Naming:
- Components: PascalCase (
StudentCard.tsx) - Files: camelCase (
useAuth.tsx) - Variables: camelCase (
studentData) - Constants: UPPER_SNAKE_CASE (
API_BASE_URL)
- Components: PascalCase (
When reporting bugs, please include:
- Description: Clear description of the issue
- Steps to reproduce: Detailed steps
- Expected behavior: What should happen
- Actual behavior: What actually happens
- Environment: OS, Node version, browser
- Screenshots: If applicable
Feature requests are welcome! Please:
- Check existing issues first
- Provide clear use case
- Explain expected behavior
- Consider implementation complexity
- Update README.md for user-facing changes
- Update inline code comments
- Add JSDoc comments for public APIs
- Update SETUP_GUIDE.md if setup changes
If you discover a security vulnerability:
- DO NOT open a public issue
- Email: [your-email@example.com]
- Include detailed description
- We'll respond within 48 hours
By contributing, you agree that your contributions will be licensed under the MIT License.
Your contributions make StudentSathi better for everyone!