Documentation Index
Fetch the complete documentation index at: https://mintlify.com/chamals3n4/OpenATS/llms.txt
Use this file to discover all available pages before exploring further.
Getting Started
Thank you for your interest in contributing to OpenATS! This guide will help you understand our development workflow and best practices.Before contributing, make sure you’ve completed the Local Development Setup.
Important Rules
Git Workflow
Before Starting Any Work
Always sync with the upstream repository first:Creating a New Branch
Use descriptive branch names that follow these conventions: For new features:feature/candidate-filteringfeature/email-templatesfeature/assessment-builder
fix/login-redirectfix/job-posting-validationfix/assessment-scoring
docs/api-endpointsdocs/setup-guide
Making Changes
1. Work on Your Code
Make your changes in focused, logical commits. Each commit should represent a single, complete change.2. Test Your Changes
Frontend testing:3. Database Schema Changes
If you modified any schema files inapi/src/db/schema/:
Committing Changes
Commit Message Format
Use clear, descriptive commit messages:Add candidate filtering by skillsFix job posting validation errorUpdate assessment scoring logicRefactor authentication middleware
updatefix bugchangeswip
Commit Best Practices
- Keep commits atomic - One logical change per commit
- Write descriptive messages - Explain what and why, not how
- Test before committing - Ensure your code works
- Don’t commit secrets - Never commit
.envfiles or API keys - Include migration files - Always commit generated Drizzle migrations
Pushing Your Changes
Push your branch to your fork:Creating a Pull Request
1. Go to GitHub
Navigate to the OpenATS repository on GitHub.2. Create PR from Your Branch
GitHub will usually show a prompt to create a PR from your recently pushed branch. Click “Compare & pull request”.3. Fill Out PR Template
Provide a clear description of your changes: Title: Use a clear, concise titleAdd candidate skill filtering featureFix assessment scoring bug
- What changes you made
- Why you made them
- How to test the changes
- Screenshots (if UI changes)
- Related issue numbers (if applicable)
4. Request Review
Wait for maintainers to review your PR. They may:- Approve and merge it
- Request changes
- Ask questions for clarification
5. Address Feedback
If changes are requested:Code Style Guidelines
TypeScript
- Use TypeScript for all new code
- Leverage type safety - avoid
anytypes - Use interfaces for object shapes
- Export types from schema files
Frontend (Next.js)
- Use functional components with hooks
- Follow the existing component structure
- Use Tailwind CSS for styling
- Use shadcn/ui components when available
Backend (Express)
- Use async/await for asynchronous operations
- Implement proper error handling
- Validate input with Zod schemas
- Use Drizzle ORM for database operations
File Organization
Database Migrations
When working with database schema changes:1. Modify Schema Files
Edit files inapi/src/db/schema/:
2. Generate Migration
api/drizzle/.
3. Apply Migration Locally
4. Commit Both Schema and Migration
Common Tasks
Syncing Your Fork
Rebasing Your Branch
If main has moved ahead while you were working:Stashing Changes
If you need to switch branches with uncommitted changes:Getting Help
- Discord: Join our community Discord server
- GitHub Issues: Ask questions in issue comments
- Discussions: Use GitHub Discussions for general questions
Code Review Process
What Reviewers Look For
-
Code Quality
- Clean, readable code
- Proper error handling
- Type safety
-
Testing
- Code has been tested locally
- Edge cases are handled
-
Documentation
- Code comments for complex logic
- Updated docs if needed
-
Best Practices
- Follows project conventions
- No security vulnerabilities
- Database migrations included (if applicable)
Timeline
- Initial review: Usually within 2-3 days
- Follow-up reviews: 1-2 days after updates
- Merge: After approval from maintainers
License
By contributing to OpenATS, you agree that your contributions will be licensed under the same license as the project.Recognition
All contributors will be recognized in the project README and release notes. Thank you for helping make OpenATS better!Next Steps
- Check open issues for tasks to work on
- Look for issues labeled
good first issueif you’re new - Join our community channels to connect with other contributors