Getting Started
Welcome to ReptiDex Engineering
This guide will help you get up and running with the ReptiDex development environment and understand our engineering practices.Prerequisites
Required Software
- Node.js: Version 18+ (use nvm for version management)
- Python: Version 3.11+ (use pyenv for version management)
- Docker: Latest stable version with Docker Compose
- Git: Latest version with SSH key configuration
- VS Code: Recommended IDE with suggested extensions
Required Accounts
- GitHub: Access to reptidex organization repositories
- AWS: Development account access (provided by DevOps)
- Slack: Team communication and integration notifications
- Linear: Project management and issue tracking
Development Environment Setup
1. Repository Setup
2. Quick Start with Scripts
3. Manual Docker Compose Setup
📖 For comprehensive setup instructions, troubleshooting, and advanced usage, see our detailed Development Environment Guide.
Project Structure
Monorepo Organization
Service Architecture
- API Gateway: All external requests go through Nginx on port 80
- Backend Services: Run in Docker on ports 8001-8006 (repti-core to repti-ops)
- Frontend Applications: Run locally via npm/pnpm on ports 3000-3003
- Shared Packages: Built locally via pnpm workspace (@reptidex/ui, @reptidex/core)
- Databases: PostgreSQL instances on ports 5432-5437 (one per service)
- Infrastructure: Redis (6379), shared across services
Development Workflow
1. Feature Development
- Create Branch:
git checkout -b feature/your-feature-name - Develop: Write code following our coding standards
- Test: Run unit tests and integration tests
- Review: Create pull request for code review
- Deploy: Merge to main triggers automatic deployment
2. Code Review Process
- All code must be reviewed by at least one team member
- Automated tests must pass before merge
- Follow established patterns and conventions
- Update documentation as needed
3. Testing Strategy
- Unit Tests: Jest for JavaScript, pytest for Python
- Integration Tests: API and database integration testing
- E2E Tests: Playwright for critical user journeys
- Manual Testing: QA review for UI/UX changes
Coding Standards
Code Style
- TypeScript: Strict mode enabled, comprehensive typing
- Python: PEP 8 compliance, type hints required
- Formatting: Prettier for JS/TS, Black for Python
- Linting: ESLint for JS/TS, Flake8 for Python
- Testing: Minimum 70% coverage, focus on critical paths
Best Practices
- Write self-documenting code with clear variable names
- Include comprehensive error handling and logging
- Follow SOLID principles and clean architecture patterns
- Write tests for all new functionality
- Update documentation for API and architectural changes
Development Scripts Overview
Unified Development Script: ./scripts/dev.sh
Our main development script now provides seamless management of both Docker backend services and local frontend applications:
Available Scripts
Frontend Development
Development Environment
Docker Compose Commands
Individual Service Development
Database & Infrastructure
Getting Help
Documentation
- Service Documentation:
/docs/engineering/services/- Individual service specs - Architecture Documentation:
/docs/engineering/architecture/- System design - Application Documentation:
/docs/engineering/applications/- Frontend apps - API Documentation: Auto-generated from OpenAPI specs
- Development Tools:
DEVELOPMENT-TOOLS.mdin project root
Team Communication
- Daily Standups: 9:00 AM EST via Slack/Video
- Office Hours: Engineering leads available 2-4 PM EST
- Slack Channels: #engineering, #random, #releases
- Code Reviews: GitHub notifications and Slack integration
Development Tools & Debugging
- Logs: Docker Compose logs via
docker-compose logs -f [service] - Observability: Jaeger tracing at http://localhost:16686
- Database: PgAdmin at http://localhost:5050
- Cache: Redis Commander at http://localhost:8081
- Message Queue: RabbitMQ Management at http://localhost:15672
- Email Testing: MailHog at http://localhost:8025
- Local Debugging: VS Code debugging configuration provided
Development Scripts
./scripts/dev.sh: Complete development environment management./scripts/bulk-ops.sh: Bulk operations across services./scripts/service-registry.sh: Service discovery and registry management./scripts/generate-docs.sh: Documentation generation./scripts/setup-shared-workflows.sh: CI/CD workflow setup
Next Steps
-
Environment Verification:
-
Service Exploration:
- Visit http://localhost:8000 for the API Gateway
- Check out individual service documentation in
/docs/engineering/services/ - Review the system architecture in
/docs/engineering/architecture/
-
First Development Task:
- Pick up a “good first issue” from Linear
- Create a feature branch following our naming conventions
- Test your changes using the development environment
-
Team Integration:
- Schedule 1:1s with team members
- Join daily standups and planning meetings
- Familiarize yourself with our coding standards and review process
-
Deep Dive:
- Explore the microservice templates in
/templates/ - Review shared libraries in
/libraries/ - Understand our deployment and CI/CD processes
- Explore the microservice templates in
Troubleshooting
Common Issues
- Port conflicts: Check if ports 3000-3007, 8000-8013, 5432, 6379 are available
- Docker issues: Run
docker system pruneto clean up containers and volumes - Service startup failures: Check logs with
./scripts/dev.sh logs [service-name] - Database connection issues: Ensure PostgreSQL is running and accessible

