Skip to content

Latest commit

 

History

History
85 lines (63 loc) · 2.38 KB

CONTRIBUTING.md

File metadata and controls

85 lines (63 loc) · 2.38 KB

Contributing to Axiom

Thanks for your interest in contributing! This guide will help you get started.

Getting Started

  1. Fork the repository
  2. Clone your fork: git clone https://github.com/ishaan1013/axiom.git
  3. Create a new branch: git checkout -b feature/your-feature-name
  4. Follow the setup instructions in the README

Development Workflow

Branch Naming

  • feature/ - New features
  • fix/ - Bug fixes
  • refactor/ - Code refactoring

Commit Messages

Follow conventional commits:

type(scope): description

[optional body]

Types:

  • feat: New feature
  • fix: Bug fix
  • style: Formatting changes
  • refactor: Code restructuring

Code Style

  • Use TypeScript
  • Follow existing code formatting (Prettier)
  • Keep components small and focused
  • Use meaningful variable names

Pull Requests

  1. Update your branch with main: git rebase main
  2. Push to your fork: git push origin feature/your-feature-name
  3. Create a PR with:
    • Clear title and description
    • Link to related issues
    • Screenshots for UI changes
    • List of tested browsers/devices

Project Structure

axiom/
├── frontend/           # Next.js frontend
│   ├── app/           # Pages and routing
│   ├── components/    # React components
│   └── lib/          # Utilities and helpers
└── backend/           # Express backend
    ├── src/          # Source code
    └── prisma/       # Database schema

Notable files:

  • Frontend
    • frontend/lib/lang.ts - Language definition
    • frontend/components/editor/index.tsx - Editor component
    • frontend/components/editor/explorer.tsx - File explorer
    • frontend/lib/query.ts - Tanstack Query hooks; write all query and mutation logic here
    • frontend/lib/actions.ts - Data fetching helpers; write all data fetching logic here
  • Backend
    • backend/src/index.ts - Backend entry point and HTTP route handling
    • backend/src/socketio.ts - Socket.io event handling for workspace collaboration
    • backend/src/utils.ts - Prisma client operations; write all database operations here
    • backend/prisma/schema.prisma - Prisma database schema

Need Help?