Skip to main content

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

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:

  1. Java Development Kit (JDK) 17
  2. IntelliJ IDEA
  3. PostgreSQL
  4. DBeaver
  5. Visual Studio Code
  6. Fast Node Manager (fnm)
  7. 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

  1. Maintain clear commit messages following conventional commits
  2. Create feature branches for new development
  3. Use pull requests for code review
  4. Keep documentation in sync with code changes
  5. 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.