Technical Stack Documentation
System Architecture Overview
This document outlines the complete technical stack used in the development and deployment of our application.
Backend Infrastructure
Development Environment
- Programming Language: Java 17
- Integrated Development Environment (IDE): IntelliJ IDEA
- Operating System: Windows 11
- Build Automation Tool: Gradle
- Application Framework: Spring Boot
Database Infrastructure
Development Database
- Database Management System: PostgreSQL
- Database Client: DBeaver
- Purpose: Database administration and development interface
- Features: Visual query builder, data visualization, and schema management
Production Database
- Platform: AWS RDS Instance
- Purpose: Production-grade managed PostgreSQL database
- Benefits:
- Automated backups
- High availability
- Managed updates and maintenance
- Scalable infrastructure
Frontend Infrastructure
Core Technologies
- Framework: Astro
- Purpose: Static site generation and server-side rendering
- Benefits: Optimal performance and improved SEO capabilities
Development Tools
- Code Editor: Visual Studio Code (VSCode)
- Essential Extensions:
- Astro Language Support
- MDX Language Support
- GitHub Copilot
- Essential Extensions:
Package Management
- Package Manager: Yarn
- Purpose: Dependency management and project workflow
- Node Version Manager: Fast Node Manager (fnm)
- Purpose: Node.js version management
- Benefits: Seamless switching between Node.js versions
Documentation
Documentation Framework
- Platform: Docusaurus
- Purpose: Technical documentation generation and management
- Features:
- Markdown support
- Versioning
- Full-text search
- Documentation-specific theming
Development Prerequisites
To begin development, ensure the following tools are installed:
- Java Development Kit (JDK) 17
- IntelliJ IDEA
- PostgreSQL
- DBeaver
- Visual Studio Code
- Fast Node Manager (fnm)
- Yarn package manager
Version Control and Collaboration
Repository Structure
The project is maintained across two separate GitHub repositories:
Backend Repository
- Repository: dtymc-backend
- Purpose: Houses the Java/Spring Boot backend codebase
- Key Components:
- API endpoints
- Business logic
- Database interactions
- Service implementations
Frontend Repository
- Repository: dtym-frontend
- Purpose: Contains the Astro-based frontend application
- Key Components:
- User interface components
- Static assets
- Frontend routing
- API integrations
Version Control Best Practices
- Maintain clear commit messages following conventional commits
- Create feature branches for new development
- Use pull requests for code review
- Keep documentation in sync with code changes
- Tag releases with semantic versioning
Infrastructure and Deployment
Database Environment Separation
- Development: Local PostgreSQL instance
- Production: AWS RDS PostgreSQL instance
- Ensures separation of concerns
- Maintains data integrity across environments
Last Updated: November 23, 2024
Note: This documentation should be updated whenever there are changes to the technical stack or development environment.