Contributing to Nixopus
Thank you for your interest in contributing to Nixopus! This guide will help you get started with the development setup and explain the contribution process.
Table of Contents
- Code of Conduct
- Development Setup
- Running the Application
- Making Changes
- Submitting a Pull Request
- Proposing New Features
- Extending Documentation
- Contributor License Agreement
Code of Conduct
Before contributing, please review and agree to our Code of Conduct. We're committed to maintaining a welcoming and inclusive community.
Developmentg Setup
If you prefer to set up your development environment manually:
- Clone the repository:
git clone https://github.com/raghavyuva/nixopus.git
cd nixopus
Install Go (version 1.23.6 or newer), and PostgreSQL.
Set up PostgreSQL databases:
createdb postgres -U postgres
createdb nixopus_test -U postgres
- Copy and configure environment variables:
cp .env.sample .env
- Install project dependencies:
cd api
go mod download
cd ../view
yarn install
Running the Application
- Start the API service:
cd api
air
- Start the view service:
cd view
yarn dev
The view service uses:
- Next.js 15 with App Router
- React 19
- Redux Toolkit for state management
- Tailwind CSS for styling
- Radix UI for accessible components (Shadcn Components)
- TypeScript for type safety
Making Changes
Nixopus follows trunk-based-development conventions.
- Create a new branch:
git checkout -b feature/your-feature-name
Make your changes following the project structure:
- Place new features under
api/internal/features/
- Add tests for new functionality
- Update migrations if needed
- Follow existing patterns for controllers, services, and storage
- For frontend changes, follow the Next.js app directory structure
- Place new features under
Run tests:
cd api
make test
# View linting
cd view
yarn lint
- Commit your changes with clear messages.
Submitting a Pull Request
Push your branch and create a pull request.
Ensure your code:
- Follows the project structure
- Includes tests
- Updates documentation if needed
- Passes all CI checks
Be prepared to address feedback.
Proposing New Features
Check existing issues and pull requests.
Create a new issue with the
Feature request
template.Include:
- Feature description
- Technical implementation details
- Impact on existing code
Extending Documentation
Documentation is located in the docs/
directory. Follow the existing structure and style when adding new content.
Gratitude
Thank you for contributing to Nixopus! Your efforts help make this project better for everyone.