0% found this document useful (0 votes)
6 views8 pages

Dbms Report

The Online Job Management System is a full-stack web application built with Django to streamline the recruitment process for employers and job seekers. It features user role management, job posting and application modules, and an admin dashboard, aiming to digitize the recruitment lifecycle and enhance user experience. The system is designed to be scalable and user-friendly, with a focus on security, performance, and usability.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views8 pages

Dbms Report

The Online Job Management System is a full-stack web application built with Django to streamline the recruitment process for employers and job seekers. It features user role management, job posting and application modules, and an admin dashboard, aiming to digitize the recruitment lifecycle and enhance user experience. The system is designed to be scalable and user-friendly, with a focus on security, performance, and usability.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

1.

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

1.3 Modules (Detailed)


1. Accounts Module

Handles all user authentication and role-based access control.

Features:

• Registration with role selection (Candidate/Employer)


• Login & logout
• Profile management
• Django’s built-in user model extension using AbstractUser

Code Snippet:

# accounts/models.py

from django.contrib.auth.models import AbstractUser

from django.db import models

class CustomUser(AbstractUser):

ROLE_CHOICES = (

('candidate', 'Candidate'),

('employer', 'Employer'),
)

role = models.CharField(max_length=10, choices=ROLE_CHOICES)

2. JobsApp Module

This is the heart of the system, managing job postings and applications.

Features:

• Employers can create, update, delete jobs


• Candidates can view jobs and apply
• Resume upload and storage
• Application status updates

Code Snippet:

# jobsapp/models.py

class Job(models.Model):

title = models.CharField(max_length=200)

description = models.TextField()

company = models.CharField(max_length=100)

posted_by = models.ForeignKey(CustomUser, on_delete=models.CASCADE)

class Application(models.Model):

job = models.ForeignKey(Job, on_delete=models.CASCADE)

applicant = models.ForeignKey(CustomUser, on_delete=models.CASCADE)

resume = models.FileField(upload_to='resumes/')

status = models.CharField(default='Pending', max_length=20)

3. Admin Module

Admins use Django’s powerful admin interface to monitor and control system behavior.

Features:

• View all users and roles


• Remove spam/invalid jobs
• Reset application status
• Dashboard metrics via Django Admin
2.1 Survey Description
A detailed requirement gathering was done by analyzing:

• Job seekers’ needs for resume uploads, job filtering


• Recruiters’ needs for easy posting and candidate management
• Admins’ need for complete oversight

Observations:

• Users need mobile-friendly, simple UIs.


• Employers prefer quick dashboard-based tools.
• Admins require user logs and moderation tools.

2.2 Languages Used


Frontend:

• HTML5/CSS3: Layout and styling


• Bootstrap: Responsive design
• JavaScript: Dynamic behavior (e.g., job filters)

Backend:

• Python (Django Framework): Main backend logic and ORM


• SQLite: Lightweight DBMS for dev
• Django Templating Engine: Renders views securely

3.1 Requirement Specifications


Functional Requirements:

• Multi-role login system


• Job posting and application
• Resume management
• Application status tracking
• Admin-level moderation

Non-Functional Requirements:

• Security: hashed passwords, file restrictions


• Scalability: DB migrations, app separation
• Performance: ORM optimizations
• Usability: Responsive UI, intuitive forms
3.2 Hardware & Software Requirements
Hardware:

• CPU: Dual-core or better


• RAM: 4GB minimum
• Disk: 1GB for logs/uploads

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:

• 1NF: Each field contains atomic values.


• 2NF: All non-key fields depend fully on the primary key.
• 3NF: No transitive dependency between non-key attributes.

Sample Schema:

• User(user_id, email, password, role)


• Job(job_id, title, description, company, posted_by)
• Application(app_id, job_id, applicant_id, resume, status)

4.1 Code Details and Code Efficiency


Project Structure:
/project

/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

Efficient Use of Django ORM

Example: Filtering jobs by company:

# jobsapp/views.py

def job_list(request):

jobs = Job.objects.filter(company__icontains=request.GET.get("company", ""))

return render(request, 'jobsapp/job_list.html', {'jobs': jobs})

• Avoids raw SQL

• Filters done in the DB layer

• Prevents SQL injection

Resume Upload Handling

# forms.py

class ApplicationForm(forms.ModelForm):

class Meta:

model = Application

fields = ['resume']

# views.py

def apply_job(request, job_id):

job = get_object_or_404(Job, pk=job_id)

form = ApplicationForm(request.POST, request.FILES)

if form.is_valid():

app = form.save(commit=False)

app.applicant = request.user
app.job = job

app.save()

return redirect('application_success')

• Uses Django’s file upload handling

• Validates file type/size (can be extended)

• Associates job & applicant efficiently

Template Inheritance for DRY HTML

<!-- base.html -->

<!DOCTYPE html>

<html>

<head>{% block head %}{% endblock %}</head>

<body>

{% block content %}{% endblock %}

</body>

</html>

<!-- job_list.html -->

{% extends "base.html" %}

{% block content %}

<h2>Available Jobs</h2>

{% for job in jobs %}

<p>{{ job.title }} at {{ job.company }}</p>

{% endfor %}

{% endblock %}

• Reduces repetition

• Layout consistency

• Easy UI maintenance
Efficiency Considerations:

• Pagination for large job lists


• Bulk inserts using bulk_create for importing jobs
• Select_related() to optimize JOINs in application listings
• CSRF protection for all forms
• Query caching for heavy filters (future scope)

5.1 User Documentation


Job Seeker Flow:

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

6.1 Test Cases with Image Descriptions


Test Case Scenario Input Expected Output
TC01 Candidate registration Valid user data Success, redirect to login
TC02 Employer posts job Job form Job listed in job board
TC03 Apply with resume Upload file Application saved, success msg
TC04 Admin deletes user Click “Delete” User removed
TC05 Search job with keyword "Python" Filtered job list

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:

• Adding real-time notifications


• Enhancing resume filtering using NLP
• Integrating with LinkedIn/GitHub for profile import
• Deploying on AWS/Heroku for scalability

This project provides a real-world foundation in building full-stack Django applications with
robust architecture and clean coding practices.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy