Skip to content

Latest commit

Β 

History

History
176 lines (139 loc) Β· 6.08 KB

File metadata and controls

176 lines (139 loc) Β· 6.08 KB

Backend roadmap.sh

This repository represents my journey through the backend roadmap projects from roadmap.sh/backend.
The projects are designed to help developers like myself build practical skills and create a strong portfolio while following industry best practices.

Projects

1. Task Tracker (CLI)

πŸ”— Project Page β€’ πŸ“ Code Repo

A command-line interface application for managing tasks and to-do lists.

Tech Stack:

  • Java 8+
  • Gson (JSON serialization)
  • Maven

Architecture:

  • Layered Architecture (CLI, Service, Persistence)
  • Simple OOP with separation of concerns

Features:

  • File I/O operations
  • Command-line argument parsing
  • Basic data structures
  • CRUD operations

2. GitHub User Activity Tracker (CLI)

πŸ”— Project Page β€’ πŸ“ Code Repo

A CLI tool that fetches and displays GitHub user activity using the GitHub API.

Tech Stack:

  • Java 11+
  • Java HttpClient (HTTP requests)
  • Gson (JSON parsing)
  • Maven

Architecture:

  • Layered Architecture (CLI, Service, Client, Model, Util)
  • Command Pattern for extensibility
  • Clean separation of concerns

Features:

  • API integration and HTTP requests
  • JSON data parsing
  • Error handling and validation
  • Command-line interface design

3. Expense Tracker (CLI)

πŸ”— Project Page β€’ πŸ“ Code Repo

A modular Java CLI application for managing personal finances with JSON persistence.

Tech Stack:

  • Java 17+
  • Gson (JSON serialization)
  • Apache Commons CLI (argument parsing)
  • OpenCSV (CSV export)
  • Maven

Architecture:

  • Layered Architecture (CLI, Command, Service, Persistence, Model)
  • Command Pattern for CLI extensibility
  • Factory Pattern for command handlers
  • Validation Framework for input
  • Clean separation of concerns

Features:

  • Full CRUD operations for expenses (add, update, delete, list)
  • Summary reports (total and month-specific with category breakdown)
  • Filter expenses by category and month
  • Monthly budget management with overspend warnings
  • Export expense data to CSV files
  • Gson-based JSON storage and retrieval
  • Layered architecture with command pattern and comprehensive input validation

4. Number Guessing Game (CLI)

πŸ”— Project Page β€’ πŸ“ Code Repo

A comprehensive Java CLI application implementing a number guessing game following hexagonal architecture principles.

Tech Stack:

  • Java 17+ (or higher)
  • Maven

Architecture:

  • Hexagonal Architecture (Ports & Adapters)
  • Layered (Domain, Application, Infrastructure, Main)
  • Dependency Injection throughout
  • SOLID principles and design patterns (Strategy, Factory, Repository)

Features:

  • Multiple difficulty levels (Easy, Medium, Hard)
  • Player management and score tracking
  • Real-time feedback and game state display
  • Input validation and error handling
  • Play again functionality
  • Professional CLI interface
  • Comprehensive JavaDoc documentation
  • Fully testable and extensible structure

5. Weather API Wrapper Service (API)

πŸ”— Project Page β€’ πŸ“ Code Repo

A production-ready Spring Boot microservice that wraps the Visual Crossing Weather API, providing secure RESTful endpoints for weather data with comprehensive caching, rate limiting, and monitoring capabilities.

Tech Stack:

  • Java 21
  • Spring Boot 3.5.3
  • Spring WebFlux (reactive web client)
  • Redis (caching)
  • Bucket4j (rate limiting)
  • Jackson (JSON processing)
  • Maven

Architecture:

  • Hexagonal Architecture (Ports & Adapters)
  • Clean Architecture with layered separation
  • Domain-driven design principles
  • Dependency inversion and injection
  • SOLID principles throughout

Features:

  • RESTful API endpoints for weather data retrieval
  • Visual Crossing Weather API integration with error handling
  • Redis-based caching for improved performance and cost reduction
  • Bucket4j rate limiting with per-client token buckets
  • Comprehensive input validation and sanitization
  • Security hardening with OWASP compliance
  • Graceful shutdown and application lifecycle management
  • Structured logging and performance monitoring
  • Health checks and observability features
  • Cache and rate limit management endpoints
  • Production-ready configuration and deployment support

6. Unit Converter (Web Application)

πŸ”— Project Page β€’ πŸ“ Code Repo β€’ 🌐 Live Demo

A production-ready full-stack web application for converting between different units including length, weight, and temperature. Built with Node.js/Express backend and modern vanilla JavaScript frontend with responsive design.

Tech Stack:

  • Node.js 16+
  • Express 4.19.2
  • Vanilla JavaScript
  • Tailwind CSS
  • Jest (testing)
  • Vercel (deployment)

Architecture:

  • Layered Architecture (Presentation, Business, Data)
  • Repository Pattern for data access
  • Service Layer for business logic
  • Validation Chain with sanitization
  • Error Hierarchy with structured exception handling

Features:

  • RESTful API endpoints for all conversion types
  • Responsive web interface with mobile support
  • Accurate conversions using standard mathematical formulas
  • Cross-unit support between metric and imperial systems
  • Comprehensive input validation and error handling
  • Express static file serving for frontend assets
  • 500+ test cases including unit, integration, and E2E tests
  • Vercel serverless deployment configuration
  • Complete UML diagrams and professional documentation