Skip to content

Jayanth-reflex/global-disease-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Global Disease Tracking Web Application

A full-stack, microservices-based platform to track global disease data, maintain user watchlists, and manage authentication—all accessible through a web application.


Table of Contents

  1. Project Overview
  2. Architecture & Tech Stack
  3. Prerequisites
  4. Repository Structure
  5. Setup & Installation
    1. 1. Clone the Repository
    2. 2. Backend Services (Spring Boot Microservices)
      1. 2.1 Eureka Discovery Server
      2. 2.2 MySQL & MongoDB Configuration
      3. 2.3 Running Individual Microservices
    3. 3. Frontend Application (Angular)
  6. Using the Application
  7. Common Troubleshooting

Project Overview

World Disease Tracking is designed to:

  • Fetch and display global disease statistics (via an external-API microservice).
  • Allow users to register, log in, and manage a “watchlist” of diseases/countries.
  • Provide a responsive Angular UI (maps, charts, tables).
  • Use Eureka for service discovery, with a Gateway routing layer for all HTTP traffic.
  • Store user data in MySQL and watchlist/disease records in MongoDB.

Architecture & Tech Stack

Backend (Java - Spring Boot)

  • Eureka Discovery Server: Manages service registration/lookup.
  • API Gateway: Spring Cloud Gateway routes traffic to downstream services.
  • Authentication Service: Handles user registration, login (JWT tokens), password resets, backed by MySQL.
  • External-API Service: Fetches global disease data from a public source (e.g., third-party API) and caches in MongoDB.
  • Watchlist Service: Manages user-specific watchlist entries in MongoDB.

Tech Stack:

  • Spring Boot 2.7.0
  • Spring Cloud 2021.0.3
  • Spring Data JPA (MySQL)
  • Spring Data MongoDB
  • Netflix Eureka
  • Spring Cloud Gateway

Frontend (Angular 13)

  • UI Framework: Angular, PrimeNG, Angular Material
  • State Management: Angular services + localStorage
  • Charts & Maps: Leaflet, Chart.js
  • Notifications: ngx-toastr
  • Routing: Angular Router with lazy-loaded modules

Prerequisites

Ensure the following software is installed:

  • Java JDK 11 or higher
  • Maven 3.6+
  • Node.js 14+ & npm 6+
  • Angular CLI 13+ (optional but recommended)
  • MySQL 8.x
  • MongoDB 6.x
  • Git

Repository Structure

world_disease_tracking_app/
├── covid19-app-frontend/        # Angular frontend application
├── covid19-project/             # Backend microservices
│   ├── authentication-service/  # User authentication service
│   ├── external-api-service/    # External API integration service
│   ├── watchlist-service/       # User watchlist management service
│   ├── api-gateway/             # API Gateway for routing
│   └── discovery-service/       # Eureka Discovery Server

Setup & Installation

1. Clone the Repository

git clone https://github.com/Jayanth-reflex/world_disease_tracking_app.git
cd world_disease_tracking_app

2. Backend Services (Spring Boot Microservices)

2.1 Eureka Discovery Server

cd covid19-project/discovery-service
mvn clean install
mvn spring-boot:run

2.2 MySQL & MongoDB Configuration

  • Create a MySQL database named userdb.
  • Update MySQL credentials in application.properties inside authentication-service.
  • Ensure MongoDB is running on the default port.

2.3 Running Individual Microservices

cd covid19-project/<service-name>
mvn clean install
mvn spring-boot:run

3. Frontend Application (Angular)

cd covid19-app-frontend
npm install
ng serve

Visit: http://localhost:4200


Using the Application

  1. Register a new account.
  2. Log in using your credentials.
  3. View global disease data on maps and charts.
  4. Add/remove countries or diseases to/from your personal watchlist.

Common Troubleshooting

  • Port Conflicts: Make sure default ports (e.g., 8080, 8761) are not occupied.
  • DB Connections: Check that MySQL and MongoDB are running and credentials are valid.
  • CORS Issues: Verify API Gateway allows frontend origin (adjust CORS settings if needed).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors