JOB TRACKING SYSTEM V2

The Next Generation of Project Management with NextAuth Integration

Project Overview

In today's fast-paced world, managing projects and tracking every detail can be a complex and overwhelming task. Imagine a solution that simplifies these processes, makes them more organized, and effortlessly boosts your team's productivity.

Welcome to JOB TRACKING SYSTEM V2, a comprehensive, next-generation platform designed to revolutionize how you manage your work. This system promises to move you beyond traditional methods and help you reach new levels of efficiency.

With its comprehensive feature set and modern technology stack, JOB TRACKING SYSTEM V2 is not just a tool; it's a strategic partner for your team's success. It's designed to make project management more intuitive, collaborative, and efficient, allowing your team to focus on what matters most: building and delivering great work.

JOB TRACKING SYSTEM V2 Screenshot

NextAuth Integration & Authentication Flow

Authentication Architecture Overview

Our application leverages NextAuth.js for authentication management, integrated with a Spring Boot backend that handles user credentials and issues JWT tokens. This hybrid approach combines the convenience of NextAuth with the security of a robust backend authentication system.

Frontend (Next.js with NextAuth)

  • NextAuth.js for session management
  • JWT token handling and validation
  • Secure session storage
  • Protected routes and API calls

Backend (Spring Boot)

  • User credential verification
  • JWT token generation and validation
  • User data retrieval and formatting
  • Secure API endpoints

Authentication Process Flow

1

User Login

User enters credentials in the Next.js login form. The form data is sent to the NextAuth credentials provider.

// NextAuth credentials provider
async authorize(credentials) {
  // Send credentials to Spring Boot backend
  const response = await axios.post('/api/auth/login', credentials);
  return response.data.user;
}
2

Backend Verification

Spring Boot backend receives the credentials, verifies them against the database, and generates a JWT token if valid.

// Spring Boot authentication endpoint
@PostMapping("/api/auth/login")
public ResponseEntity<?> authenticateUser(@RequestBody LoginRequest loginRequest) {
  // Verify credentials
  // Generate JWT token
  return ResponseEntity.ok(new JwtResponse(token, userDetails));
}
3

Session Creation

NextAuth receives the user data and JWT token from the backend, creates a session, and stores the JWT token securely.

// NextAuth session callback
async session({ session, token }) {
  session.accessToken = token.accessToken;
  session.user = token.user;
  return session;
}
4

Accessing User Data

Once authenticated, user data is accessible throughout the Next.js application via the NextAuth session and useSession hook.

// Accessing user data in components
const { data: session } = useSession();

if (session) {
  console.log('User:', session.user);
  console.log('Access Token:', session.accessToken);
}

Security Features

  • JWT-based stateless authentication
  • Secure session storage with HTTP-only cookies
  • CSRF protection enabled
  • Automatic token refresh

Implementation Details

  • Custom NextAuth credentials provider
  • JWT token passed to Spring Boot API calls
  • Axios interceptors for automatic token attachment
  • Protected routes with middleware

Core Modules and Features

User Management & Authentication

Comprehensive user management suite with NextAuth integration and robust security features.

  • NextAuth.js for seamless authentication
  • JWT-based stateless authentication with Spring Boot
  • Profile updates with email verification through one-time codes
  • Team invitation system via email with direct project assignment
  • Role-based access control for different user permissions
  • Session management with automatic timeout and refresh tokens

Project Module

Central hub for all project-related activities and team collaboration.

  • Full CRUD operations for project lifecycle management
  • Team and member management with role assignments
  • Custom task status definitions to match unique workflows
  • Project dashboard with real-time progress tracking
  • Project templates for quick setup of common project types
  • Activity logs for tracking project changes and history

Task Module

Granular control over work items with comprehensive task management.

  • Complete CRUD operations for task management
  • User assignment with notification system
  • Comments and subtasks for detailed task breakdown
  • Automated backlog management for unassigned tasks
  • Priority levels and due date tracking
  • File attachments and document linking

Backlog Module

Dedicated space for tasks that aren't yet scheduled for development.

  • Automatic task handling for newly created unassigned tasks
  • Project-based backlog organization
  • Drag-and-drop interface for backlog management
  • Priority sorting and filtering options
  • Quick task creation directly in the backlog
  • Backlog analytics and capacity planning

Sprint Module

Ideal for teams using Agile methodologies with sprint management.

  • Create, list, and delete sprints on a per-project basis
  • Sprint goal setting and progress tracking
  • Task and user management within sprints
  • Sprint capacity planning with team member availability
  • Burndown charts and velocity metrics
  • Sprint retrospective and review tools

Kanban Module

Visual and interactive way to manage your workflow with drag-and-drop.

  • Dynamic board view for all tasks across all sprints
  • Drag-and-drop status updates with real-time sync
  • Customizable columns to match your workflow
  • Work-in-progress limits for each column
  • Swimlanes for different task categories or assignees
  • Card filtering and quick search functionality

Weekly Module

Specialized module to track time and progress on a weekly basis.

  • Weekly overview for hourly work entry and tracking
  • Create, update, and delete weekly time entries
  • Detailed weekly board with hourly breakdown
  • List view showing summary of all weekly entries
  • Time approval workflow for managers
  • Integration with task tracking for time allocation

File Management

Comprehensive file handling with MinIO object storage integration.

  • File upload with drag-and-drop interface
  • MinIO object storage compatible with Amazon S3
  • File versioning and history tracking
  • File sharing and access control
  • Preview capabilities for common file types
  • File organization with folder structure

Security

Robust security framework with NextAuth and Spring Security integration.

  • JWT authentication for secure, stateless sessions
  • Spring Security framework for authorization
  • NextAuth.js for session management
  • Role-based access control throughout the system
  • Data encryption for sensitive information
  • Audit trails for all critical operations

App Screenshots

JOB TRACKING SYSTEM V2 Screenshot 1
JOB TRACKING SYSTEM V2 Screenshot 2
JOB TRACKING SYSTEM V2 Screenshot 3
JOB TRACKING SYSTEM V2 Screenshot 4
JOB TRACKING SYSTEM V2 Screenshot 5
JOB TRACKING SYSTEM V2 Screenshot 6
JOB TRACKING SYSTEM V2 Screenshot 7
JOB TRACKING SYSTEM V2 Screenshot 8
JOB TRACKING SYSTEM V2 Screenshot 9
JOB TRACKING SYSTEM V2 Screenshot 10
JOB TRACKING SYSTEM V2 Screenshot 11
JOB TRACKING SYSTEM V2 Screenshot 12
JOB TRACKING SYSTEM V2 Screenshot 13
JOB TRACKING SYSTEM V2 Screenshot 14
JOB TRACKING SYSTEM V2 Screenshot 15
JOB TRACKING SYSTEM V2 Screenshot 16
JOB TRACKING SYSTEM V2 Screenshot 17
JOB TRACKING SYSTEM V2 Screenshot 18
JOB TRACKING SYSTEM V2 Screenshot 19
JOB TRACKING SYSTEM V2 Screenshot 20
JOB TRACKING SYSTEM V2 Screenshot 21
JOB TRACKING SYSTEM V2 Screenshot 22
JOB TRACKING SYSTEM V2 Screenshot 23

Technology Stack

Frontend Technologies

Next.js

TypeScript

Tailwind CSS

Radix UI

Redux Toolkit

Axios

NextAuth.js

Backend Technologies

Java 21

Spring Boot

Spring Security

Webflux

MongoDB

MinIO

Email Integration

Nginx

Docker

Project Repositories

Frontend

Next.js-based frontend application for the JOB TRACKING SYSTEM V2 with TypeScript, NextAuth integration, and modern UI components.

Key Technologies:

  • Next.js with SSR and SSG
  • TypeScript for type safety
  • Tailwind CSS for styling
  • Redux Toolkit for state management
  • Radix UI for accessible components
  • NextAuth.js for authentication
View on GitHub

Backend

Spring Boot-based backend service for the JOB TRACKING SYSTEM V2 with reactive programming, JWT authentication, and robust security.

Key Technologies:

  • Java 21 with Spring Boot
  • Spring Security for authentication
  • Webflux for reactive programming
  • MongoDB for data storage
  • JWT for secure authentication
  • Integration with NextAuth.js
View on GitHub

How It Works

1

User Authentication

Secure login and registration with NextAuth.js and Spring Boot JWT-based authentication.

2

Project & Task Management

Create projects, define custom statuses, and manage tasks with assignments and subtasks.

3

Track & Collaborate

Use Kanban boards, sprints, and weekly tracking to monitor progress and collaborate effectively.

System Architecture

Frontend

  • Next.js with TypeScript
  • Tailwind CSS for styling
  • Redux Toolkit for state management
  • Radix UI for accessible components
  • NextAuth.js for authentication

Backend

  • Java 21 with Spring Boot
  • Spring Security for authentication
  • Webflux for reactive programming
  • MongoDB for data storage
  • JWT token generation and validation

Infrastructure

Docker

Nginx

MinIO

Email Service

Getting Started

Frontend Setup

  1. Clone the repository:
    git clone https://github.com/celalaygar/JOB-TS-V2-FE.git
  2. Navigate to the project directory:
    cd JOB-TS-V2-FE
  3. Install dependencies:
    npm install
  4. Configure environment variables:
    cp .env.example .env.local
  5. Run the development server:
    npm run dev

Backend Setup

  1. Clone the repository:
    git clone https://github.com/celalaygar/JOB-TS-V2-BE.git
  2. Navigate to the project directory:
    cd JOB-TS-V2-BE
  3. Build the project with Gradle:
    ./gradlew build
  4. Configure environment variables:
    cp .env.example .env
  5. Run the application:
    java -jar build/libs/job-ts-v2-be-0.0.1.jar