Local Development
This guide is intended for developers who want to contribute to OpenATS, build new features, fix bugs, or customize the platform.
Fork the Repository
Before making changes, fork the OpenATS repository to your own GitHub account.
- Navigate to the OpenATS GitHub repository.
- Click Fork in the top-right corner.
- Create a fork under your GitHub account.
Clone Your Fork
Clone your fork locally:
git clone https://github.com/<your-username>/OpenATS.git
cd openats
Add the original repository as an upstream remote:
git remote add upstream https://github.com/chamals3n4/OpenATS.git
Verify your remotes:
git remote -v
Repository Structure
OpenATS is organized as a multi-application repository.
OpenATS/
├── frontend/ # Next.js application
├── backend/ # Express API
└── ...
Frontend (frontend)
The frontend is built with:
- Next.js
- React
- TypeScript
- Tailwind CSS
- shadcn/ui
Backend (backend)
The backend provides:
- Authentication and authorization
- Candidate management
- Hiring process management
- Assessments and evaluations
- File storage integrations
- Notifications and external integrations
Install Dependencies
From the repository root:
pnpm install
Configure Environment Variables
Backend
cp backend/.env.example backend/.env
Frontend
cp frontend/.env.example frontend/.env.local
Configure the values according to the Environment Configuration guide.
Database Setup
Ensure PostgreSQL is running and your DATABASE_URL is configured correctly.
Example:
DATABASE_URL=postgresql://username:password@localhost:5432/openats
Run the Backend
Open a terminal:
cd backend
pnpm dev
The API will be available at:
http://localhost:8080
Run the Frontend
Open a new terminal:
cd frontend
pnpm dev
The application will be available at:
http://localhost:3000
Create a Development Branch
Before making changes, create a new branch:
git checkout -b feature/your-feature-name
Examples:
git checkout -b feature/candidate-filters
git checkout -b feature/pipeline-improvements
git checkout -b fix/login-redirect
Keep Your Fork Updated
Fetch the latest changes from the main repository:
git fetch upstream
git checkout main
git merge upstream/main
Submit Your Changes
Commit your work:
git add .
git commit -m "feat: add candidate filtering"
Push your branch:
git push origin feature/candidate-filters
Open a Pull Request from your fork to the OpenATS main repository.
Code Style
When contributing to OpenATS:
- Follow existing coding conventions
- Keep changes focused and scoped
- Write meaningful commit messages
- Test changes before submitting
- Update documentation when necessary
Next Steps
Once your development environment is running successfully, review the Contributing Guide for pull request requirements, code review expectations, and community guidelines.