Skip to content

itscharanteja/JobPortal_ASP.NET

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

JobPortal πŸ§‘β€πŸ’ΌπŸ’»

A full-stack Job Portal application built with ASP.NET Core (Web API, EF Core, Identity) and React (Vite + TypeScript).
Users can register, login, post jobs, search jobs, and apply with resumes.
Recruiters can manage job listings and applications, while admins have dashboard controls.


πŸš€ Tech Stack

Backend

  • ASP.NET Core 7 (Web API)
  • Entity Framework Core (ORM, migrations, LINQ)
  • ASP.NET Core Identity (user management & roles)
  • JWT Authentication (for API + SPA communication)
  • SQL Server / PostgreSQL (database)
  • Swagger / OpenAPI (API documentation)

Frontend

  • React (Vite + TypeScript)
  • React Router (routing & protected routes)
  • TailwindCSS / MUI (styling β€” pick one)
  • Fetch API / Axios (API requests)

Deployment & DevOps

  • Docker + docker-compose
  • GitHub Actions (CI/CD pipeline)
  • Azure App Service + Azure SQL + Azure Blob Storage
  • Or Netlify/Vercel for frontend hosting

✨ Features

πŸ‘€ User

  • Register / login with JWT auth
  • Browse and search job listings
  • Apply to jobs with resume upload
  • Track application status

🏒 Recruiter

  • Create, update, delete job postings
  • View applicants per job
  • Manage application statuses (reviewed, interview, hired, rejected)

πŸ‘¨β€πŸ’» Admin (optional)

  • Manage all users, jobs, and applications
  • Dashboard with system-wide metrics

πŸ“‚ Project Structure

/jobportal
  /src
    /JobPortal.Api         # ASP.NET Core Web API backend
    /JobPortal.WebClient   # React (Vite + TypeScript) frontend
  docker-compose.yml
  .github/workflows/ci.yml
  README.md

πŸ› οΈ Setup & Run

Backend (ASP.NET Core)

cd src/JobPortal.Api

# Restore dependencies
dotnet restore

# Create database & run migrations
dotnet ef migrations add InitialCreate
dotnet ef database update

# Run API
dotnet run
  • API runs on https://localhost:7001 (HTTPS) and http://localhost:5001 (HTTP).
  • Swagger docs available at /swagger.

Frontend (React + Vite + TypeScript)

cd src/JobPortal.WebClient

# Install dependencies
npm install

# Start dev server
npm run dev
  • Frontend runs on http://localhost:5173 (Vite default).
  • Configured proxy sends /api requests to the backend.

πŸ”‘ Environment Variables

Backend Configuration

Development (User Secrets)

# Initialize user secrets
dotnet user-secrets init

# Set required secrets
dotnet user-secrets set "AzureStorage:ConnectionString" "your-connection-string"
dotnet user-secrets set "AzureStorage:AccountName" "your-account-name"
dotnet user-secrets set "AzureStorage:AccountKey" "your-account-key"
dotnet user-secrets set "Jwt:Key" "your-jwt-secret-key"

Production (Environment Variables or Azure App Settings)

Required configuration:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=your-db-server;Database=JobPortalDb;..."
  },
  "AzureStorage": {
    "ConnectionString": "your-storage-connection-string",
    "ContainerName": "jobportalresumes",
    "AccountName": "your-storage-account",
    "AccountKey": "your-storage-key"
  },
  "Jwt": {
    "Key": "your-jwt-secret-key",
    "Issuer": "JobPortalApi",
    "Audience": "JobPortalClient"
  }
}

Frontend (.env)

VITE_API_URL=http://localhost:5001/api

πŸ“Œ API Endpoints (MVP)

Auth

  • POST /api/auth/register β†’ create account
  • POST /api/auth/login β†’ login, returns JWT

Jobs

  • GET /api/jobs β†’ list jobs (supports pagination, filters)
  • GET /api/jobs/{id} β†’ get job details
  • POST /api/jobs β†’ create job (recruiter-only)
  • PUT /api/jobs/{id} β†’ update job (recruiter-only)
  • DELETE /api/jobs/{id} β†’ delete job (recruiter/admin)

Applications

  • POST /api/applications β†’ apply with resume
  • GET /api/applications/{jobId} β†’ recruiter views applicants
  • PUT /api/applications/{id} β†’ update status

Uploads

  • POST /api/uploads β†’ upload resume (returns file URL)

πŸ“¦ Docker (optional)

Local dev with containers:

docker-compose up --build

Services:

  • db β†’ SQL Server
  • api β†’ ASP.NET Core backend
  • web β†’ React frontend

πŸš€ Deployment

Backend

  • Deploy API as Azure App Service (or containerized to Azure Container Apps).
  • Use Azure SQL Database for DB.
  • Store resumes in Azure Blob Storage.

Frontend

  • Deploy React static build to Netlify / Vercel / Azure Static Web Apps.
  • Or serve frontend build from backend wwwroot.

πŸ§ͺ Testing

Backend

  • Unit tests with xUnit
  • Integration tests with ASP.NET Core TestServer

Frontend

  • Jest + React Testing Library for component tests

πŸ—ΊοΈ Roadmap

  • Backend scaffold with EF Core & JobsController
  • Add migrations & database
  • Add Identity & JWT authentication
  • Implement AuthController (register/login)
  • Build React frontend (Vite + TS)
  • Implement auth flow on frontend
  • Jobs CRUD (frontend + backend integration)
  • Resume uploads
  • Recruiter dashboard
  • Admin role & dashboard
  • CI/CD with GitHub Actions
  • Deploy backend (Azure) + frontend (Netlify/Vercel)

πŸ“Έ Screenshots / Demo (to add later)

Add screenshots or a short demo video/gif once core features are done.


πŸ’‘ Resume Highlight

β€œDeveloped a Job Portal web application using ASP.NET Core, EF Core, Identity, and React (Vite + TypeScript). Implemented JWT authentication, role-based authorization, and resume uploads. Deployed backend on Azure App Service and frontend on Netlify.”


🀝 Contributing

Clone the repo, open a branch, and make PRs.
All suggestions welcome!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages