matters-server/
βββ src/
β βββ common/ # Shared utilities and constants
β β βββ enums/ # Enumeration definitions
β β βββ errors/ # Custom error classes
β β βββ utils/ # Utility functions
β β
β βββ connectors/ # Database and external service connectors
β β βββ __test__/ # Connector tests
β β βββ *.ts # Service implementations
β β
β βββ definitions/ # Type definitions and interfaces
β β βββ *.ts # TypeScript type definitions
β β
β βββ mutations/ # GraphQL mutation resolvers
β β βββ *.ts # Mutation implementations
β β
β βββ queries/ # GraphQL query resolvers
β β βββ *.ts # Query implementations
β β
β βββ types/ # GraphQL type definitions
β β βββ __test__/ # Type tests
β β βββ *.ts # GraphQL schema types
β β
β βββ utils/ # Application utilities
β βββ *.ts # Helper functions
β
βββ db/ # Database related files
β βββ migrations/ # Database migrations
β βββ seeds/ # Database seed files
β βββ bin/ # Database scripts
β
βββ docs/ # Documentation
β βββ *.md # Documentation files
β
βββ .env.example # Environment variables template
βββ package.json # NPM package configuration
βββ README.md # Project overview
- Types: Define GraphQL schema types in
src/types/ - Queries: Implement query resolvers in
src/queries/ - Mutations: Implement mutation resolvers in
src/mutations/
- Connectors: Database and external service connections in
src/connectors/ - Migrations: Database schema changes in
db/migrations/ - Seeds: Initial data population in
db/seeds/
- Unit Tests: Located in
__test__directories - Test Utilities: Common test setup in
src/types/__test__/utils.js - Test Mode: Special testing configurations in
docs/Test-Mode.md
- Enums: Shared constants in
src/common/enums/ - Errors: Custom error classes in
src/common/errors/ - Utils: Helper functions in
src/common/utils/
-
Setup
npm install cp .env.example .env npm run db:migrate
-
Database Changes
# Create migration npm run db:migration:make <name> # Create seed npm run db:seed:make <name> # Run migrations npm run db:migrate
-
Testing
# Run all tests npm run test # Run specific test npm run test -- <test-file>
-
Development
# Start development server npm run start:dev
- Environment:
.env.example- Template for environment variables - Database:
db/migrations/- Database schema changes - GraphQL:
src/types/- GraphQL schema definitions - Tests:
src/**/__test__/- Test files - Documentation:
docs/- Project documentation
-
Code Organization
- Keep related files together
- Use clear, descriptive names
- Follow TypeScript best practices
-
Testing
- Write tests for new features
- Follow test guidelines in
docs/Unittest.md - Use test mode for development
-
Database
- Use migrations for schema changes
- Include rollback scripts
- Document complex queries
-
Documentation
- Keep README up to date
- Document complex logic
- Include examples in tests