- Core Language: TypeScript
- Database: Neo4j
- Graph Query Language: Cypher
- UI Framework: To be determined based on visualization needs
- Use TypeScript Compiler API for AST generation
- Support for multiple file types (ts, js, tsx, jsx)
- Incremental parsing capabilities
- File system watchers for real-time updates
- Neo4j as the primary graph database
- Custom graph schema for code representation
- Optimized Cypher queries for common operations
- APOC library integration for advanced graph operations
- RESTful API design
- Graph visualization capabilities
- Interactive query builder
- Real-time updates
- Strict type checking enabled
- No use of 'any' type unless absolutely necessary
- Interface-first approach for type definitions
- Comprehensive error handling
src/
├── explorer/ # UI and API components
├── neo4j/ # Database and graph operations
└── index.ts # Application entry point
- PascalCase for classes and interfaces
- camelCase for methods and variables
- UPPER_CASE for constants
- Use descriptive names that reflect purpose
- Custom error classes for different domains
- Consistent error reporting format
- Proper error propagation
- Logging of all critical errors
- Jest as the testing framework
- Unit tests for core functionality
- Integration tests for Neo4j operations
- API endpoint testing
- Minimum 80% code coverage
- Batch operations for large graph updates
- Query optimization for common operations
- Caching strategies for frequently accessed data
- Pagination for large result sets
- Input validation for all API endpoints
- Neo4j access control
- Rate limiting for API requests
- Secure configuration management
- JSDoc for all public APIs
- README files for each major component
- API documentation using OpenAPI/Swagger
- Architecture decision records (ADRs)
- Feature branches
- Pull request reviews
- Automated testing in CI/CD
- Version control using Git