Project Structure

The TransitPulse project is organized into two main components: the backend (Spring Boot) and the frontend (Angular). Below is a breakdown of the directory structure:

transitpulse/
├── backend/                     # Backend codebase (Spring Boot)
│   ├── src/
│   │   ├── main/
│   │   │   ├── java/
│   │   │   │   └── com/
│   │   │   │       └── transitpulse/
│   │   │   │           ├── controller/       # REST controllers
│   │   │   │           ├── model/            # Domain models
│   │   │   │           ├── repository/       # Data access layer (Cassandra repository interfaces)
│   │   │   │           ├── service/          # Service layer (business logic)
│   │   │   │           ├── config/           # Configuration classes (Kafka, Cassandra, etc.)
│   │   │   │           └── TransitPulseApplication.java  # Main Spring Boot application
│   │   ├── resources/
│   │   │   ├── application.properties        # Spring Boot application properties
│   │   │   ├── logback-spring.xml            # Logging configuration
│   │   │   └── templates/                    # (not applicable)
│   │   └── test/                             # Unit and integration tests
│   │       └── java/
│   │           └── com/
│   │               └── transitpulse/
│   │                   ├── controller/       # Test cases for controllers
│   │                   ├── service/          # Test cases for services
│   │                   └── repository/       # Test cases for repositories
│   ├── pom.xml                               # Maven build configuration
│   └── Dockerfile                            # Dockerfile for backend service
├── frontend/                    # Frontend codebase (Angular)
│   ├── src/
│   │   ├── app/
│   │   │   ├── components/                   # Angular components
│   │   │   ├── services/                     # Services for API calls
│   │   │   ├── models/                       # Data models for frontend
│   │   │   ├── app-routing.module.ts         # Routing module
│   │   │   ├── app.module.ts                 # Root module
│   │   │   └── app.component.ts              # Root component
│   │   ├── assets/                           # Static assets (images, icons, etc.)
│   │   ├── environments/                     # Environment configurations (development, production)
│   │   ├── index.html                        # Main HTML file
│   │   ├── styles.css                        # Global styles
│   │   └── main.ts                           # Main entry point for Angular
│   ├── angular.json                          # Angular CLI configuration
│   ├── package.json                          # npm package dependencies
│   └── Dockerfile                            # Dockerfile for frontend service
├── docker-compose.yml            # Docker Compose configuration for Kafka, Cassandra, etc.
└── README.md                     # Project README file

Key Directories and Files

  • backend/: Contains the Spring Boot application, including controllers, services, and repository layers. The config/ directory holds configuration files for Kafka, Cassandra, and other services.

  • frontend/: Contains the Angular application, including components, services, and routing configuration. The assets/ directory holds static resources like images and styles.

  • docker-compose.yml: Defines the Docker services for running Kafka, Cassandra, and other dependencies. This file allows you to easily spin up the necessary infrastructure with a single command.

  • Dockerfiles: Separate Dockerfiles are provided for both the backend and frontend services, enabling containerized deployment of the entire application.

  • README.md: The project documentation, including setup instructions, configuration details, and an overview of the system architecture.

Last updated