Resume Uploader File 1 1
Resume Uploader File 1 1
(5th semester)
On
RESUME UPLOADER-PROJECT
Of
Bachelor of Technology
The information and the data in the report is authentic to the best of my
knowledge.
Chinju shibu
______________________________________________________________________________
ACKNOWLEDGEMENT
I, student of Ludhiana college of engineering and technology, Ludhiana, have taken efforts in
this project. However, it would not have been possible without the kind support and help of
many individuals and organizations. I would like to extend my sincere thanks to all of them.
I am highly indebted to the “APTECH” for their guidance and constant supervision as well as
for providing necessary information regarding the project and also for their support in
completing the project.
I would like to express my gratitude towards my teachers for their kind co-operation and
encouragement which help me in completion of this project.
Chinju shibu
Certificate
TABLE OF CONTENTS
Introduction
Technology used
1. Front end,backend
2. Framework
3. Code editor
HTML
Css
1. What is css?
2. Css first step
3. Css building blocks
4. Styling text
5. Css layout
6. Use css to solve common problem
Python
1. Intro
2. Why to learn python
3. Characteristics of python
4. Application of python
Django framework
Vs code
Source code
1. candidate.html
2. home.html
3. forms.py
4. model.py
5. View.py
6. 5.urls.py
conclusion
Bibliography
INTRODUCTION
Online resume distribution services make it easy to create resumes online and issue
them to employers. Specific job search sites, such as Workopolis.com and Monster.ca,
allow you to build and post your resume in a searchable format.
Employers benefit from the advantages online resumes offer, including having access
to a host of possible applicants based on specific search criteria and limiting their
search to applications that possess the exact skills and qualities they are looking for.
Technologies Used
Front End:
HTML, CSS
Backend End:
Python
Framework:
Django
Code editor
VS code
HTML (Hyper Text Markup Language)
HTML is a markup language that defines the structure of your content. HTML consists
of a series of elements, which you use to enclose, or wrap, different parts of the content
to make it appear a certain way, or act a certain way. The enclosing tags can make a
word or image hyperlink to somewhere else, can italicize words, can make the font
bigger or smaller, and so on. For example, take the following line of content:
1. The opening tag: This consists of the name of the element (in this case, p),
wrapped in opening and closing angle brackets. This states where the element
begins or starts to take effect — in this case where the paragraph begins.
2. The closing tag: This is the same as the opening tag, except that it includes
a forward slash before the element name. This states where the element ends
— in this case where the paragraph ends. Failing to add a closing tag is one of
the standard beginner errors and can lead to strange results.
3. The content: This is the content of the element, which in this case, is just text.
4. The element: The opening tag, the closing tag, and the content together
comprise the element.
Attributes contain extra information about the element that you don't want to appear in
the actual content. Here, class is the attribute name and editor-note is the
attribute value. The class attribute allows you to give the element a non-unique
identifier that can be used to target it (and any other elements with the
same class value) with style information and other things.
1. A space between it and the element name (or the previous attribute, if the
element already has one or more attributes).
2. The attribute name followed by an equal sign.
3. The attribute value wrapped by opening and closing quotation marks.
CSS(Cascading Style Sheet)
Cascading Style Sheets (CSS) is a stylesheet language used to describe the
presentation of a document written in HTML or XML (including XML dialects such
as SVG, MathML or XHTML). CSS describes how elements should be rendered on
screen, on paper, in speech, or on other media.
CSS is among the core languages of the open web and is standardized across Web
browsers according to W3C specifications. Previously, development of various parts of
CSS specification was done synchronously, which allowed versioning of the latest
recommendations. You might have heard about CSS1, CSS2.1, CSS3. However,
CSS4 has never become an official version.
From CSS3, the scope of the specification increased significantly and the progress on
different CSS modules started to differ so much, that it became more effective
to develop and release recommendations separately per module. Instead of versioning
the CSS specification, W3C now periodically takes a snapshot of the latest stable state
of the CSS specification.
CSS (Cascading Style Sheets) is used to style and layout web pages — for
example, to alter the font, color, size, and spacing of your content, split it into
multiple columns, or add animations and other decorative features. This module
provides a gentle beginning to your path towards CSS mastery with the basics of
how it works, what the syntax looks like, and how you can start using it to add styling
to HTML.
This module carries on where CSS first steps left off — now you've gained
familiarity with the language and its syntax, and got some basic experience with
using it, it's time to dive a bit deeper. This module looks at the cascade and
inheritance, all the selector types we have available, units, sizing, styling
backgrounds and
The aim here is to provide you with a toolkit for writing competent CSS and help
you understand all the essential theory, before moving on to more specific
disciplines like text styling and CSS layout.
Styling text
With the basics of the CSS language covered, the next CSS topic for you to
concentrate on is styling text — one of the most common things you'll do with CSS.
Here we look at text styling fundamentals, including setting font, boldness, italics,
line and letter spacing, drop shadows, and other text features. We round off the
module by looking at applying custom fonts to your page, and styling lists and links.
CSS layout
At this point we've already looked at CSS fundamentals, how to style text, and how
to style and manipulate the boxes that your content sits inside. Now it's time to look
at how to place your boxes in the right place in relation to the viewport, and to each
other. We have covered the necessary prerequisites so we can now dive deep into
CSS layout, looking at different display settings, modern layout tools like flexbox,
CSS grid, and positioning, and some of the legacy techniques you might still want
to know about.
Python is a MUST for students and working professionals to become a great Software
Engineer specially when they are working in Web Development Domain. I will list
down some of the key advantages of learning Python:
• Python is Interactive − You can actually sit at a Python prompt and interact with
the interpreter directly to write your programs.
Characteristics of Python
Following are important characteristics of Python Programming −
• It provides very high-level dynamic data types and supports dynamic type
checking.
• It can be easily integrated with C, C++, COM, ActiveX, CORBA, and Java.
Applications of Python
As mentioned before, Python is one of the most widely used language over the web.
I'm going to list few of them here:
• Easy-to-read − Python code is more clearly defined and visible to the eyes.
• A broad standard library − Python's bulk of the library is very portable and
cross-platform compatible on UNIX, Windows, and Macintosh.
• Interactive Mode − Python has support for an interactive mode which allows
interactive testing and debugging of snippets of code.
• Portable − Python can run on a wide variety of hardware platforms and has the
same interface on all platforms.
• Extendable − You can add low-level modules to the Python interpreter. These
modules enable programmers to add to or customize their tools to be more
efficient.
• GUI Programming − Python supports GUI applications that can be created and
ported to many system calls, libraries and windows systems, such as Windows
MFC, Macintosh, and the X Window system of Unix.
• Scalable − Python provides a better structure and support for large programs
than shell scripting.
Django (Framework)
Django is a high-level Python web framework that enables rapid development of secure
and maintainable websites. Built by experienced developers, Django takes care of
much of the hassle of web development, so you can focus on writing your app without
needing to reinvent the wheel. It is free and open source, has a thriving and active
community, great documentation, and many options for free and paid-for support.
Complete
Django follows the "Batteries included" philosophy and provides almost everything
developers might want to do "out of the box". Because everything you need is part
of the one "product", it all works seamlessly together, follows consistent design
principles
Versatile
Django can be (and has been) used to build almost any type of website — from
content management systems and wikis, through to social networks and news sites.
It can work with any client-side framework, and can deliver content in almost any
format (including HTML, RSS feeds, JSON, XML, etc). The site you are currently
reading is built with Django!
Internally, while it provides choices for almost any functionality you might want (e.g.
several popular databases, templating engines, etc.), it can also be extended to use
other components if needed.
Secure
Django helps developers avoid many common security mistakes by providing a
framework that has been engineered to "do the right things" to protect the website
automatically. For example, Django provides a secure way to manage user accounts
and passwords, avoiding common mistakes like putting session information in cookies
where it is vulnerable (instead cookies just contain a key, and the actual data is stored
in the database) or directly storing passwords rather than a password hash.
Scalable
Django uses a component-based “shared-nothing” architecture (each part of the
architecture is independent of the others, and can hence be replaced or changed if
needed). Having a clear separation between the different parts means that it can
scale for increased traffic by adding hardware at any level: caching
servers, database servers, or application servers. Some of the busiest sites have
successfully scaled Django to meet their demands (e.g. Instagram and Disqus, to
name just two).
Maintainable
Django code is written using design principles and patterns that encourage the
creation of maintainable and reusable code. In particular, it makes use of the Don't
Repeat Yourself (DRY) principle so there is no unnecessary duplication, reducing
the amount of code. Django also promotes the grouping of related functionality into
reusable "applications" and, at a lower level, groups related code into modules
Portable
Django is written in Python, which runs on many platforms. That means that you
are not tied to any particular server platform, and can run your applications on many
flavours of Linux, Windows, and Mac OS X. Furthermore, Django is well-supported
by many web hosting providers, who often provide specific infrastructure and
documentation for hosting Django sites.
Based on the number of high profile sites that use Django, the number of people
contributing to the codebase, and the number of people providing both free and paid
for support, then yes, Django is a popular framework!
High-profile sites that use Django include: Disqus, Instagram, Knight Foundation,
MacArthur Foundation, Mozilla, National Geographic, Open Knowledge Foundation,
Pinterest, and Open Stack .
In a traditional data-driven website, a web application waits for HTTP requests from the
web browser (or other client). When a request is received the application works out
what is needed based on the URL and possibly information in POST data or GET data.
Depending on what is required it may then read or write information from a database
or perform other tasks required to satisfy the request. The application will then return a
response to the web browser, often dynamically creating an HTML page for the browser
to display by inserting the retrieved data into placeholders in an HTML template.
Django web applications typically group the code that handles each of these steps into
separate files:
• URLs: While it is possible to process requests from every single URL via a single
function, it is much more maintainable to write a separate view function to handle
each resource. A URL mapper is used to redirect HTTP requests to the
appropriate view based on the request URL. The URL mapper can also match
particular patterns of strings or digits that appear in a URL and pass these to a
view function as data.
• View: A view is a request handler function, which receives HTTP requests and
returns HTTP responses. Views access the data needed to satisfy requests
via models, and delegate the formatting of the response to templates.
• Models: Models are Python objects that define the structure of an application's
data, and provide mechanisms to manage (add, modify, delete) and query
records in the database.
• Templates: A template is a text file defining the structure or layout of a file (such
as an HTML page), with placeholders used to represent actual content.
A view can dynamically create an HTML page using an HTML template,
populating it with data from a model. A template can be used to define the
structure of any type of file; it doesn't have to be HTML!
VS CODE
Features
You can install the latest version of Visual Studio Code from their official
website.
After installation, you can run the editor by entering the code -n command
into the terminal. This will prompt VS Code to start and display a fresh
instance. If you want to continue working from where you left off in the
previous coding session, enter the code command without the -n flag. If you
want to open VS Code in a certain directory, navigate to the directory and
enter the code -r command. You are now on your way to writing powerful
code on your VS Code environment!
SOURCE CODE
Candidate.html
<!DOCTYPE html>
{% load myfilter %}
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/[email protected]
beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-
BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl"
crossorigin="anonymous">
<title>Candidate</title>
</head>
<body>
<div class="container">
<h1 class="alert-danger text-center p-3">Candidate Detail</h1>
<div class="row">
<div class="col-sm-10 shadow p-5 offset-sm-1">
<h3 class="text-center"><u>Resume</u></h3>
<p class="float-end">Applicantion No: {{candidate.id}}</p>
<p>Name: {{candidate.name}}</p>
<p>Date of Birth: {{candidate.dob}}</p>
<p>Gender: {{candidate.gender}}</p>
<p>Address: {{candidate.locality}}, {{candidate.city}},
{{candidate.state}} - {{candidate.pin}}</p>
<p>Mobile No: {{candidate.mobile}}</p>
<p>Email ID: {{candidate.email}}</p>
<p>Preferred Job Cities: {{candidate.job_city|remove_special:"[]'"}}</p>
<div class="text-center">
<a href="/" class="btn btn-danger">Back to Home</a>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/[email protected]
beta2/dist/js/bootstrap.bundle.min.js" integrity="sha384-
b5kHyXgcpbZJO/tY9Ul7kGkf1S0CWuKcCD38l8YkeH8z8QjE0GmW1gYU5S9FOnJ0"
crossorigin="anonymous"></script>
</body>
</html>
Home.html
<!DOCTYPE html>
{% load static %}
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/[email protected]
beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-
BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl"
crossorigin="anonymous">
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-
ui.css">
<link rel="stylesheet" href="{% static 'myapp/css/style.css' %}">
<title>Resume Uploader</title>
</head>
<body>
</div>
<script src="https://cdn.jsdelivr.net/npm/[email protected]
beta2/dist/js/bootstrap.bundle.min.js" integrity="sha384-
b5kHyXgcpbZJO/tY9Ul7kGkf1S0CWuKcCD38l8YkeH8z8QjE0GmW1gYU5S9FOnJ0"
crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-
/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
crossorigin="anonymous"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$( function() {
$( "#datepicker" ).datepicker();
} );
</script>
</body>
</html>
Forms.py
from django import forms
from .models import Resume
GENDER_CHOICES = [
('Male', 'Male'),
('Female', 'Female')
]
JOB_CITY_CHOICE = [
('Delhi', 'Delhi'),
('Pune', 'Pune'),
('Ranchi', 'Ranchi'),
('Mumbai', 'Mumbai'),
('Dhanbad', 'Dhanbad'),
('Banglore', 'Banglore')
]
class ResumeForm(forms.ModelForm):
gender = forms.ChoiceField(choices=GENDER_CHOICES, widget=forms.RadioSelect)
job_city = forms.MultipleChoiceField(label='Preferred Job Locations',
choices=JOB_CITY_CHOICE, widget=forms.CheckboxSelectMultiple)
class Meta:
model = Resume
fields = ['name', 'dob', 'gender', 'locality', 'city', 'pin', 'state',
'mobile', 'email', 'job_city', 'profile_image', 'my_file']
labels = {'name':'Full Name', 'dob': 'Date of Birth', 'pin':'Pin Code',
'mobile':'Mobile No.', 'email':'Email ID', 'profile_image':'Profile Image',
'my_file':'Document'}
widgets = {
'name':forms.TextInput(attrs={'class':'form-control'}),
'dob':forms.DateInput(attrs={'class':'form-control', 'id':'datepicker'}),
'locality':forms.TextInput(attrs={'class':'form-control'}),
'city':forms.TextInput(attrs={'class':'form-control'}),
'pin':forms.NumberInput(attrs={'class':'form-control'}),
'state':forms.Select(attrs={'class':'form-select'}),
'mobile':forms.NumberInput(attrs={'class':'form-control'}),
'email':forms.EmailInput(attrs={'class':'form-control'}),
}
Models.py
from django.db import models
STATE_CHOICE = (
('Andaman & Nicobar Islands','Andaman & Nicobar Islands'),
('Andhra Pradesh','Andhra Pradesh'),
('Arunachal Pradesh','Arunachal Pradesh'),
('Assam','Assam'),
('Bihar','Bihar'),
('Chandigarh','Chandigarh'),
('Chhattisgarh','Chhattisgarh'),
('Dadra & Nagar Haveli','Dadra & Nagar Haveli'),
('Daman and Diu','Daman and Diu'),
('Delhi','Delhi'),
('Goa','Goa'),
('Gujarat','Gujarat'),
('Haryana','Haryana'),
('Himachal Pradesh','Himachal Pradesh'),
('Jammu & Kashmir','Jammu & Kashmir'),
('Jharkhand','Jharkhand'),
('Karnataka','Karnataka'),
('Kerala','Kerala'),
('Lakshadweep','Lakshadweep'),
('Madhya Pradesh','Madhya Pradesh'),
('Maharashtra','Maharashtra'),
('Manipur','Manipur'),
('Meghalaya','Meghalaya'),
('Mizoram','Mizoram'),
('Nagaland','Nagaland'),
('Odisha','Odisha'),
('Puducherry','Puducherry'),
('Punjab','Punjab'),
('Rajasthan','Rajasthan'),
('Sikkim','Sikkim'),
('Tamil Nadu','Tamil Nadu'),
('Telangana','Telangana'),
('Tripura','Tripura'),
('Uttarakhand','Uttarakhand'),
('Uttar Pradesh','Uttar Pradesh'),
('West Bengal','West Bengal'),
)
class Resume(models.Model):
name = models.CharField(max_length=100)
dob = models.DateField(auto_now=False, auto_now_add=False)
gender = models.CharField(max_length=100)
locality = models.CharField(max_length=100)
city = models.CharField(max_length=100)
pin = models.PositiveIntegerField()
state = models.CharField(choices=STATE_CHOICE, max_length=50)
mobile = models.PositiveIntegerField()
email = models.EmailField()
job_city = models.CharField(max_length=50)
profile_image = models.ImageField(upload_to='profileimg', blank=True)
my_file = models.FileField(upload_to='doc', blank=True)
view.py
from django.shortcuts import render
from .forms import ResumeForm
from .models import Resume
from django.views import View
class HomeView(View):
def get(self, request):
form = ResumeForm()
candidates = Resume.objects.all()
return render(request, 'myapp/home.html', { 'candidates':candidates,
'form':form})
class CandidateView(View):
def get(self, request, pk):
candidate = Resume.objects.get(pk=pk)
return render(request, 'myapp/candidate.html', {'candidate':candidate})
urls.py
"""resumeuploader URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/4.0/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from myapp import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.HomeView.as_view(), name='home'),
path('<int:pk>', views.CandidateView.as_view(), name='candidate')
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Home interface
Admin page
Conclusion
Resume uploader, is a python based programming where u can easily create
your own resume ,the process of making this project was interesting as well as
knowledgeable.
Bibliography
Geeksforgeeks.com
Geekyshows/youtube
Python.com
Stackoverflow.com