This repository houses the core application services for JobBoard, a production-grade full-stack platform connecting job seekers and employers. The platform is engineered with a decoupled architecture, strict authentication patterns, and built-in cloud-native telemetry.
- Frontend: React (SPA)
- Backend: Django / Django REST Framework (DRF)
- Database: PostgreSQL (PL/SQL / Relational)
- Authentication: JWT (JSON Web Tokens via
rest_framework_simplejwt) - Telemetry & Metrics:
django-prometheus(Exposing/metricsfor Prometheus scraping)
The backend is built using Django REST Framework (DRF) to expose high-performance, stateless REST APIs. It handles the core business logic, relational data modeling, query optimization, and structured JWT token issuance/rotation.
A modern React Single Page Application (SPA) that handles consumer state, client-side routing, and interactive forms for users and employers. It communicates asynchronously with the Django backend using secure HTTP client layers, managing session lifespan via short-lived JWT tokens.
A robust relational database layer utilizing PostgreSQL. The database handles structured mapping for complex multi-table operations (such as linking Users, Job Profiles, Applications, and Saved Job States) utilizing relational constraints, foreign keys, and indexes for performant lookups.
All endpoints are strictly versioned or grouped behind structural prefixes. Below is the full system routing matrix configured in the application:
Handles user identity management, registration workflows, and token validation lifecycles.
| Endpoint | Method | Description |
|---|---|---|
/api/auth/register/ |
POST |
Register a new user or employer account |
/api/auth/login/ |
POST |
Authenticate credentials & return access/refresh JWT tokens |
/api/auth/token/refresh/ |
POST |
Exchange a valid refresh token for a new short-lived access token |
/api/auth/profile/ |
GET/PUT |
Retrieve or update current authenticated user profile data |
/api/auth/change-password/ |
POST |
Securely update authenticated user password |
Manages job board postings, analytics, categorization, and the underlying recruitment state machines.
| Endpoint | Method | Description |
|---|---|---|
/api/jobs/ |
GET/POST |
List all open jobs (with filters) or create a new job posting |
/api/jobs/stats/ |
GET |
Retrieve aggregate metrics and data dashboards for job analytics |
/api/jobs/categories/ |
GET |
List available industry categories for job classifications |
/api/jobs/my-jobs/ |
GET |
List jobs posted by or relevant to the current authenticated user |
/api/jobs/saved/ |
GET |
Fetch the authenticated candidate's list of bookmarked/saved jobs |
/api/jobs/<slug:slug>/ |
GET/PUT/DEL |
View detail, modify, or remove a specific job using its unique slug |
/api/jobs/<slug:slug>/applications/ |
GET |
View all candidate applications submitted for a specific job posting |
/api/jobs/<slug:slug>/save/ |
POST |
Toggle the save/bookmark state for a specific job posting |
/api/jobs/applications/all/ |
GET/POST |
Global view of applications or submit a new application packet |
/api/jobs/applications/<int:pk>/ |
GET/PATCH |
Retrieve details or modify the state of a specific application by ID |
| Endpoint | Protocol / Mechanism | Description |
|---|---|---|
/admin/ |
HTTP | Built-in Django administrative portal for data management |
/metrics |
HTTP (Prometheus) | Live application performance metrics exported via django-prometheus |
/api/health |
HTTP | Lightweight health-check endpoint for ALB / ECS container target group probes |
MEDIA_URL |
Static File Storage | Configured route for serving user-uploaded static media files (e.g., Resumes) |
The cloud topography for JobBoard is managed entirely as code via highly descriptive, reusable Terraform module blueprints across a multi-cloud network mesh encompassing Amazon Web Services (AWS) and Google Cloud Platform (GCP).
- AWS Architecture (
ap-south-1): Serves as the primary immutable compute edge layer. An internet-facing Application Load Balancer routes client requests securely to a private Amazon ECS (Elastic Container Service) Fargate cluster backed by AWS Identity and Access Management (IAM) Least-Privilege profiles. - GCP Architecture (
asia-south1): Houses the transactional core database engines using managed Google Cloud SQL instances. The cluster links back securely to private service networks, guaranteeing structural isolation. - Inter-Cloud Connectivity (
vpn): Connects AWS resources to GCP network layers via an authenticated, stable Site-to-Site VPN gateway configuration mesh.
The system's low-level components are split across specialized sub-directories within infrastructure/modules/:
aws-ecs-cluster: Registers logical platform namespaces to aggregate container compute groups.aws-ecs-td: Generates immutable JSON-formatted task definitions specifying memory boundaries, environment scopes, and storage mounting hooks.aws-ecs-service: provisions rolling task orchestration loops linked directly to ALB targets with native scaling mechanisms.aws-ecr: Builds target private container registries with lifecycle policies to catalog and scan published application images.
aws-waf: Controls incoming Layer 7 payload traffic using rate limits, regional geoblocking patterns, and OWASP Top 10 managed rulesets.aws-guardduty: Actively scans network telemetry fields, S3 access events, and system states for malicious indicators or security exceptions.aws-sg: Enforces stateful network filters separating the application tier, edge proxies, and cross-vpc delivery rails.
aws-kms: Handles symmetric/asymmetric master key rings to encrypt static files, backend environment maps, and storage boundaries.aws-acm: Issues and automatically rotates public SSL/TLS cryptographic certificates to enforce strict HTTPS transport configurations.aws-route53: Directs public DNS record trees, failover configurations, and local canonical reference alias records.
gcp-cloud-sql: Deploys isolated Postgres relational database engines with high-availability configurations and automatic backup patterns.aws-s3: Provisions secure object storage buckets designed to manage candidate documents (such as resumes) and store global infrastructure states.
aws-vpc&gcp-vpc: Controls public DMZ subnets, private system nodes, internal database routing rules, and NAT gateways.vpn: Establishes the secure inter-cloud IPSec tunnel between AWS and GCP networks.aws-endpoint: Injects private VPC endpoint interfaces to securely download dependencies from AWS S3 or ECR without crossing the public web.aws-cloudtrail: Aggregates audit records of API transactions across the platform infrastructure to satisfy SOC2 compliance tracks.aws-dynamodb: Handles atomic state locking during multi-developer terraform plan execution states.