A comprehensive web-based Job Management System built with ASP.NET Core 7.0 that enables efficient management of job postings, applications, and candidate profiles. The system provides role-based access for Admins and Candidates with real-time notifications and cloud-based file storage.
- Dashboard Analytics: View comprehensive statistics and system insights
- Job Management: Create, edit, delete, and manage job postings
- Category Management: Organize jobs by categories
- Application Management: Review and manage job applications
- Candidate Management: View and manage candidate profiles
- Real-time Notifications: Instant updates on system activities
- Profile Management: Create and update professional profiles
- Resume Upload: Upload and manage resume files via cloud storage
- Job Search: Browse and filter available job postings
- Application Tracking: Apply for jobs and track application status
- Dashboard: Personal dashboard with application statistics
- Real-time Updates: Receive instant notifications about application status
The project follows a clean, layered architecture pattern:
Job-Management-System/
├── JMS-Presentation/ # Presentation Layer (MVC Controllers, Views, ViewModels)
├── BLL/ # Business Logic Layer (Services, Interfaces)
├── DAL/ # Data Access Layer (Repositories, DbContext, Models)
├── Shared/ # Shared Components (DTOs, Exceptions, Models)
└── job-management-system.sln
- Presentation Layer: Handles HTTP requests, user interface, and user interactions
- Business Logic Layer: Contains business rules, validation, and application logic
- Data Access Layer: Manages database operations and data persistence
- Shared Layer: Contains common components used across all layers
- Framework: ASP.NET Core 7.0
- Language: C#
- Database: PostgreSQL
- ORM: Entity Framework Core 7.0
- Authentication: JWT Bearer Token
- Real-time Communication: SignalR
- File Storage: Cloudinary
- Email Service: SMTP
- Views: Razor Pages/Views
- Styling: CSS, Bootstrap
- JavaScript: Vanilla JS, SignalR Client
- UI Components: Custom CSS components
- Primary: PostgreSQL
- Alternative: SQL Server (configurable)
- .NET 7.0 SDK
- PostgreSQL Server
- Visual Studio 2022 or VS Code
- Cloudinary Account (for file storage)
- SMTP Server (for email notifications)
-
Clone the repository
git clone <repository-url> cd Job-Management-System
-
Database Setup
- Install PostgreSQL
- Create a database named
JobManagement - Update connection string in
appsettings.json
-
Configuration Update
appsettings.jsonwith your configurations:{ "ConnectionStrings": { "JobManagementContext": "Host=localhost;Port=5432;Database=JobManagement;Username=your_username;Password=your_password" }, "Cloudinary": { "CloudName": "your_cloud_name", "ApiKey": "your_api_key", "ApiSecret": "your_api_secret" }, "EmailConfiguration": { "Email": "your_email@domain.com", "Password": "your_password", "Host": "your_smtp_host", "Port": 587 } } -
Install Dependencies
dotnet restore
-
Database Migration
dotnet ef database update --project DAL --startup-project JMS-Presentation
-
Run the Application
dotnet run --project JMS-Presentation
- User: Stores user information with role-based access
- JobPosting: Contains job details and requirements
- JobApplication: Links candidates to job postings
- JobCategory: Organizes jobs by categories
- Notification: Manages system notifications
- Users can have multiple JobApplications
- JobPostings belong to JobCategories
- Users receive Notifications
- JobApplications link Users to JobPostings
- JWT Authentication: Secure token-based authentication
- Password Encryption: AES encryption for sensitive data
- Role-based Authorization: Admin and Candidate role separation
- Input Validation: Comprehensive data validation
- Error Handling: Custom exception handling middleware
- User registration and login
- JWT token management
- Password reset functionality
- Role-based access control
- CRUD operations for job postings
- Job categorization
- Advanced filtering and search
- Pagination support
- Job application submission
- Application status tracking
- Admin review capabilities
- Email notifications
- Resume upload to Cloudinary
- Secure file access
- File type validation
- SignalR integration
- Live notifications
- Real-time status updates
-
Admin Access
- Login with admin credentials
- Access admin dashboard
- Manage jobs, categories, and applications
- View system analytics
-
Candidate Access
- Register/Login as candidate
- Complete profile setup
- Browse and apply for jobs
- Track application status
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
For support and questions, please contact the development team or create an issue in the repository.
Built with ❤️ using ASP.NET Core