Dbms Report
Dbms Report
1 Introduction
The Online Job Management System is a full-stack web application designed to facilitate
seamless interaction between employers and job seekers. Built using Django, this platform
digitizes the entire recruitment workflow—from job posting to application and hiring. It replaces
traditional hiring methods with a structured, automated solution that’s scalable and user-friendly.
The system comprises user role management (admin, employer, candidate), secure login/signup,
job posting and application modules, and a backend dashboard for system management.
1.2 Objective
• Digitize the recruitment lifecycle to reduce manual effort and error.
• Facilitate a centralized space for job seekers and recruiters.
• Allow employers to post jobs and filter applicants based on resumes.
• Enable job seekers
Features:
Code Snippet:
# accounts/models.py
class CustomUser(AbstractUser):
ROLE_CHOICES = (
('candidate', 'Candidate'),
('employer', 'Employer'),
)
2. JobsApp Module
This is the heart of the system, managing job postings and applications.
Features:
Code Snippet:
# jobsapp/models.py
class Job(models.Model):
title = models.CharField(max_length=200)
description = models.TextField()
company = models.CharField(max_length=100)
class Application(models.Model):
resume = models.FileField(upload_to='resumes/')
3. Admin Module
Admins use Django’s powerful admin interface to monitor and control system behavior.
Features:
Observations:
Backend:
Non-Functional Requirements:
Software:
• OS: Windows/Linux/macOS
• Python 3.9+
• Django 4.x
• SQLite (or PostgreSQL for production)
• Code Editor (VSCode/PyCharm)
3.4 Normalization
Database is normalized to 3NF:
Sample Schema:
/accounts
/jobsapp
/templates
/static
manage.py
Key Files Overview:
• models.py: DB schema
• views.py: Handles request logic
• urls.py: Routing
• templates/: HTML files with inheritance
• admin.py: Admin panel customizations
# jobsapp/views.py
def job_list(request):
# forms.py
class ApplicationForm(forms.ModelForm):
class Meta:
model = Application
fields = ['resume']
# views.py
if form.is_valid():
app = form.save(commit=False)
app.applicant = request.user
app.job = job
app.save()
return redirect('application_success')
<!DOCTYPE html>
<html>
<body>
</body>
</html>
{% extends "base.html" %}
{% block content %}
<h2>Available Jobs</h2>
{% endfor %}
{% endblock %}
• Reduces repetition
• Layout consistency
• Easy UI maintenance
Efficiency Considerations:
1. Register as Candidate
2. Complete profile and upload resume
3. View jobs and apply
4. Track status in dashboard
Employer Flow:
1. Register as Employer
2. Post new jobs
3. View applications
4. Download resumes
Admin Flow:
1. Login to /admin
2. Manage Users, Jobs, and Applications
3. Remove spam, reset credentials, and monitor activity
Screenshots:
• Registration form
• Dashboard (Employer/Candidate)
• Job list page
• Application submission success
• Admin panel view
7. Conclusion
The Online Job Management System successfully implements the full recruitment lifecycle using
Django. It covers multi-role access, job interaction, and admin management. Its modularity
ensures future scalability, such as:
This project provides a real-world foundation in building full-stack Django applications with
robust architecture and clean coding practices.