CodeAtlas is a comprehensive AI-powered code review platform that helps development teams improve code quality through automated reviews, GitHub integration, and insightful analytics.
- Multi-tenant Architecture: Secure tenant isolation for enterprise use
- AI Review Engine: Provider-agnostic AI reviews with structured outputs
- GitHub Integration: Webhooks, PR comments, and automated reviews
- Authentication: JWT + GitHub OAuth
- Production Ready: Comprehensive error handling, logging, and monitoring
- React Native: iOS and Android support with Expo
- Feature-Based Architecture: Clean, scalable code organization
- Redux Toolkit: Centralized state management with TypeScript
- Onboarding & Tour: Guided first-time user experience
- Offline Support: State persistence with AsyncStorage
- Code Quality Analysis: Readability, security, performance, maintainability
- Automated Reviews: Trigger reviews on PR creation and updates
- GitHub Integration: Seamless integration with existing workflows
- Multi-Provider AI: Support for OpenAI and Anthropic models
- Real-time Feedback: Instant review results and suggestions
backend/
├── src/
│ ├── api/ # REST API endpoints
│ ├── services/ # Business logic
│ ├── auth/ # Authentication handlers
│ ├── middleware/ # Express middleware
│ ├── config/ # Configuration
│ ├── types/ # TypeScript interfaces
│ ├── core/ # Core business logic
│ │ ├── auth/ # Auth service
│ │ ├── github/ # GitHub integration
│ │ ├── reviews/ # Review service
│ │ └── tenants/ # Tenant management
│ ├── infra/ # Infrastructure
│ │ └── db/ # Database layer
│ └── ai/ # AI engine
│ ├── providers/ # OpenAI/Anthropic
│ └── prompts/ # AI prompts
mobile/
├── src/
│ ├── features/ # Feature-based modules
│ │ ├── auth/ # Authentication
│ │ ├── repos/ # Repository management
│ │ ├── reviews/ # Review functionality
│ │ ├── onboarding/# Onboarding flow
│ │ └── settings/ # User settings
│ ├── api/ # API client
│ ├── components/ # Reusable components
│ ├── hooks/ # Custom hooks
│ ├── navigation/ # App navigation
│ ├── store/ # Redux store
│ │ └── slices/ # Redux slices
│ ├── theme/ # App theming
│ ├── utils/ # Utility functions
│ └── types/ # TypeScript types
- Runtime: Node.js 18+
- Framework: Express.js
- Language: TypeScript
- Database: PostgreSQL + Prisma ORM
- AI Providers: OpenAI, Anthropic
- Authentication: JWT, GitHub OAuth
- Logging: Winston
- Testing: Jest
- Linting: ESLint + TypeScript ESLint
- Framework: React Native + Expo
- Language: TypeScript
- State Management: Redux Toolkit + Redux Persist
- Navigation: Expo Router
- HTTP Client: Axios
- Async Storage: @react-native-async-storage/async-storage
- Testing: Jest + React Native Testing Library
- Linting: ESLint + TypeScript ESLint
- CI/CD: GitHub Actions
- Deployment: Render (Backend), Expo EAS (Mobile)
- Monitoring: Sentry (Error tracking)
- Code Quality: ESLint, Prettier
- Node.js 18+
- PostgreSQL
- Git
- Expo CLI (for mobile development)
- Clone and Install
git clone https://github.com/your-org/CodeAtlas.git
cd CodeAtlas/backend
npm install- Environment Setup
cp .env.example .env
# Edit .env with your configuration- Database Setup
npm run db:generate
npm run db:migrate- Start Development Server
npm run dev- Install Dependencies
cd CodeAtlas/mobile
npm install- Environment Setup
cp .env.example .env
# Edit .env with your API configuration- Start Development
npm start
# Follow Expo CLI instructions to run on device/simulator# Server
NODE_ENV=development
PORT=3000
API_VERSION=v1
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/codeatlas"
# Authentication
JWT_SECRET=your-super-secret-jwt-key
JWT_EXPIRES_IN=7d
GITHUB_CLIENT_ID=your-github-client-id
GITHUB_CLIENT_SECRET=your-github-client-secret
# AI Providers
AI_PROVIDER=openai
OPENAI_API_KEY=your-openai-api-key
OPENAI_MODEL=gpt-4-turbo-preview
# Logging
LOG_LEVEL=info
# Rate Limiting
RATE_LIMIT_WINDOW_MS=900000
RATE_LIMIT_MAX_REQUESTS=100# API Configuration
API_URL=http://localhost:3000
API_VERSION=v1
# Development
EXPO_PUBLIC_ENV=developmentPOST /api/v1/auth/login- User loginPOST /api/v1/auth/register- User registrationGET /api/v1/auth/me- Get current userPOST /api/v1/auth/logout- User logout
GET /api/v1/repos/:tenantId- Get repositoriesPOST /api/v1/repos- Create repositoryGET /api/v1/repos/:id- Get repository details
POST /api/v1/reviews/:prId- Create reviewGET /api/v1/reviews/:prId- Get review resultsGET /api/v1/reviews- List reviews
POST /api/v1/github/webhook- GitHub webhook receiverGET /api/v1/github/installations- Get GitHub installations
# Run all tests
npm test
# Run tests with coverage
npm run test:coverage
# Watch mode
npm run test:watch# Run all tests
npm test
# Run tests with coverage
npm run test:coverage
# Watch mode
npm run test:watch- Connect your GitHub repository to Render
- Create a new Web Service
- Set environment variables
- Configure database connection
- Deploy!
# Build image
docker build -t codeatlas-backend .
# Run container
docker run -p 3000:3000 codeatlas-backend- Install EAS CLI:
npm install -g @expo/eas-cli - Configure project:
eas configure - Build app:
eas build --platform all - Submit to stores:
eas submit --platform all
- Use TypeScript for type safety
- Follow ESLint configuration
- Use Prettier for code formatting
- Write meaningful commit messages
- Create feature branch from
develop - Make changes with descriptive commits
- Push to remote and create PR
- PR must pass CI/CD checks
- Merge to
developfor staging,mainfor production
- Unit tests for all business logic
- Integration tests for API endpoints
- Component tests for mobile UI
- Snapshot tests for critical components
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for your changes
- Ensure all tests pass
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenAI for the AI models
- Anthropic for Claude models
- Expo for React Native development
- Redux Toolkit for state management
For support and questions:
- Create an issue on GitHub
- Join our Discord community
- Email us at support@codeatlas.com
CodeAtlas - Making code review faster, smarter, and more accessible for every development team.