Skip to content

jnleyva816/Job-Application-Tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

77 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Job Application Tracker

A comprehensive full-stack application for managing job applications, built with modern technologies and production-ready CI/CD practices. Features Spring Boot backend, React frontend, and a complete DevOps pipeline with automated testing, security scanning, and multi-stage deployments.

Build Status License Docker

πŸš€ Quick Start

With Docker Compose (Recommended)

# Clone the repository
git clone https://github.com/jnleyva816/Job-Application-Tracker.git
cd Job-Application-Tracker

# Start all services
docker-compose up -d

# Access the application
# Frontend: http://localhost:3000
# Backend API: http://localhost:8080
# Database: localhost:5432 (user: postgres, password: password)

Manual Setup

Prerequisites:

  • Java 17+
  • Node.js 20+
  • PostgreSQL 15+
  • Docker (optional)

Backend Setup:

cd backend
cp .env.example .env  # Configure your environment variables
./mvnw spring-boot:run

Frontend Setup:

cd frontend
npm install
npm run dev

πŸ“Š Project Structure

Job-Application-Tracker/
β”œβ”€β”€ .github/workflows/     # CI/CD pipeline configuration
β”œβ”€β”€ backend/              # Spring Boot backend service
β”‚   β”œβ”€β”€ src/main/java/    # Java source code
β”‚   β”œβ”€β”€ src/test/java/    # Test code
β”‚   β”œβ”€β”€ Dockerfile        # Backend container configuration
β”‚   └── pom.xml           # Maven dependencies
β”œβ”€β”€ frontend/             # React frontend application
β”‚   β”œβ”€β”€ src/              # TypeScript/React source code
β”‚   β”œβ”€β”€ tests/            # Unit tests
β”‚   β”œβ”€β”€ e2e-tests/        # End-to-end tests
β”‚   β”œβ”€β”€ Dockerfile        # Frontend container configuration
β”‚   └── package.json      # Node.js dependencies
β”œβ”€β”€ deployment/           # Deployment configurations
β”œβ”€β”€ ci-cd/               # CI/CD scripts and configurations
β”œβ”€β”€ WIKI/                # Project documentation
β”œβ”€β”€ CONTRIBUTING/        # Contribution guidelines
└── docker-compose.yml   # Local development setup

πŸ—οΈ Architecture

Backend Architecture

  • Spring Boot 3.5.0 with Java 17
  • PostgreSQL database with JPA/Hibernate
  • JWT Authentication with Spring Security
  • RESTful API design with OpenAPI documentation
  • Comprehensive Testing (Unit, Integration, Security)
  • Code Quality Tools (JaCoCo, SpotBugs, PMD, Checkstyle)

Frontend Architecture

  • React 19 with TypeScript
  • Vite for fast development and building
  • Tailwind CSS for responsive design
  • React Router for navigation
  • Vitest for unit testing
  • Playwright for E2E testing

DevOps & Infrastructure

  • Docker Containers with multi-stage builds
  • GitHub Actions CI/CD pipeline
  • Security Scanning (OWASP, Trivy, SonarQube)
  • Automated Testing across all layers
  • Blue-Green Deployments with rollback capability

πŸ”§ Features

Application Features

  • βœ… User authentication and authorization
  • βœ… Job application tracking and management
  • βœ… Company and contact management
  • βœ… Interview scheduling and tracking
  • βœ… Application status workflow
  • βœ… Data visualization and analytics
  • βœ… Responsive web interface

Development Features

  • βœ… Hot reload for development
  • βœ… Comprehensive test coverage (70%+ requirement)
  • βœ… Static code analysis and security scanning
  • βœ… Database migrations with version control
  • βœ… API documentation with Swagger/OpenAPI
  • βœ… Development/staging/production environments

CI/CD Features

  • βœ… Automated builds and deployments
  • βœ… Parallel execution of frontend/backend pipelines
  • βœ… Quality gates and security checks
  • βœ… Container security scanning
  • βœ… Performance monitoring
  • βœ… Slack notifications for build status

πŸ› οΈ Technology Stack

Component Technology Version
Backend Spring Boot 3.5.0
Frontend React 19.0.0
Database PostgreSQL 15+
Authentication JWT -
Containerization Docker -
CI/CD GitHub Actions -
Testing JUnit 5, Vitest, Playwright -
Code Quality SonarQube, ESLint -
Security OWASP, Trivy -

πŸ“– Documentation

πŸ” Security

This project implements security best practices:

  • Authentication: JWT-based with secure token handling
  • Authorization: Role-based access control (RBAC)
  • Input Validation: Comprehensive request validation
  • Security Headers: Proper HTTP security headers
  • Dependency Scanning: Automated vulnerability detection
  • Container Security: Non-root containers and security scanning
  • Data Protection: Encrypted sensitive data storage

πŸ§ͺ Testing Strategy

Test Coverage Requirements

  • Backend: Minimum 70% code coverage
  • Frontend: Comprehensive unit and E2E testing
  • Integration: End-to-end workflow testing
  • Security: Automated security testing

Test Types

  • Unit Tests: Individual component testing
  • Integration Tests: Service integration testing
  • E2E Tests: Complete user workflow testing
  • Security Tests: Authentication and authorization testing
  • Performance Tests: Load and stress testing

πŸš€ Deployment

Environments

  • Development: Local development with hot reload
  • Staging: Pre-production testing environment
  • Production: Live application deployment

Deployment Strategy

  • Blue-Green Deployments: Zero-downtime deployments
  • Automated Rollbacks: Failure detection and rollback
  • Health Checks: Comprehensive monitoring
  • Scaling: Horizontal scaling capabilities

πŸ“Š Monitoring & Observability

  • Application Metrics: Performance and usage metrics
  • Health Endpoints: Service health monitoring
  • Logging: Structured logging with different levels
  • Error Tracking: Comprehensive error monitoring
  • Performance Monitoring: Response time and throughput tracking

🀝 Contributing

We welcome contributions! Please read our Contributing Guide for:

  • Code of conduct
  • Development setup
  • Pull request process
  • Code quality standards
  • Testing requirements

Development Workflow

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run tests and quality checks
  5. Submit a pull request

πŸ“‹ Development Status

  • Backend API implementation
  • Database schema and migrations
  • JWT authentication system
  • Frontend project setup with React 19
  • Comprehensive CI/CD pipeline
  • Docker containerization
  • Security scanning and quality gates
  • Multi-environment deployment setup
  • E2E testing framework
  • Frontend feature implementation (in progress)
  • Production monitoring and alerting
  • Performance optimization
  • Mobile responsive enhancements

🐳 Docker Images

Available Images

  • Backend: jleyva816/jobtracker-backend:latest
  • Frontend: jleyva816/jobtracker-frontend:latest

Building Images

# Build backend image
docker build -t jleyva816/jobtracker-backend:latest ./backend

# Build frontend image
docker build -t jleyva816/jobtracker-frontend:latest ./frontend

πŸ“ž Support & Contact

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

Special thanks to the open-source community and these amazing projects:

  • Spring Boot - Excellent Java framework
  • React - Outstanding frontend library
  • GitHub Actions - Powerful CI/CD platform
  • Docker - Containerization platform
  • Playwright - Reliable E2E testing
  • SonarQube - Code quality platform
  • OWASP - Security tools and best practices
  • Tailwind CSS - Utility-first CSS framework

Built with ❀️ for modern software development practices

Last updated: January 2025

About

An application to track your Job Applications, Interviews, and offers.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published