<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ifenna</title>
    <description>The latest articles on DEV Community by Ifenna (@phen_e).</description>
    <link>https://dev.to/phen_e</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F317159%2Fcc88b9ea-2b43-43f4-acb2-d22f5304bbbe.jpg</url>
      <title>DEV Community: Ifenna</title>
      <link>https://dev.to/phen_e</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/phen_e"/>
    <language>en</language>
    <item>
      <title>Create a CV/Resume Builder using the Django Rest Framework (part 2)</title>
      <dc:creator>Ifenna</dc:creator>
      <pubDate>Sun, 13 Dec 2020 15:55:02 +0000</pubDate>
      <link>https://dev.to/phen_e/create-a-cv-resume-builder-using-the-django-rest-framework-part-2-5565</link>
      <guid>https://dev.to/phen_e/create-a-cv-resume-builder-using-the-django-rest-framework-part-2-5565</guid>
      <description>&lt;blockquote&gt;
&lt;h3&gt;
  
  
  If Django was a superhero, it would be Superman
&lt;/h3&gt;

&lt;p&gt;~ Laptop and the Lady named Lois&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Table of content&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Assumptions about readers&lt;/li&gt;
&lt;li&gt;Getting Started&lt;/li&gt;
&lt;li&gt;Django commands: Startproject vs Startapp&lt;/li&gt;
&lt;li&gt;What are migrations?

&lt;ul&gt;
&lt;li&gt;Makemigrations vs migrate&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Creating an admin user&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
This tutorial is a continuation of &lt;a href="https://dev.to/phen_e/create-a-cv-resume-builder-using-the-django-rest-framework-part-1-1acb"&gt;Part 1&lt;/a&gt;. In this part, we shall begin by setting up our Django environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Some assumptions made in this tutorial&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Readers have set up a virtual environment.&lt;/li&gt;
&lt;li&gt;Readers are conversant with &lt;em&gt;pip&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Readers are comfortable working with Git and Github (Doesn't matter much).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Getting started&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The name of our CV Builder application is &lt;strong&gt;CVeate&lt;/strong&gt;, a combination of &lt;em&gt;CV and Create&lt;/em&gt; (oh shoot, Sherlock!😁).&lt;br&gt;&lt;br&gt;
Our CV builder requires Django and Django Rest Framework installed via &lt;code&gt;pip&lt;/code&gt; on your preferred virtual environment.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt; pip install django djangorestframework
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In order to begin with our Django project, we need to have it in a folder. Of course, we could have easily just created a new folder on our laptops and begin. Fortunately, Django provides a convenient way of creating a Django folder (literally the project).&lt;/p&gt;

&lt;p&gt;We use this command &lt;code&gt;django-admin startproject cveate&lt;/code&gt; which takes the form &lt;code&gt;&amp;lt;django command&amp;gt; &amp;lt;command to create folder&amp;gt; &amp;lt;folder name to be created&amp;gt;&lt;/code&gt;.&lt;br&gt;&lt;br&gt;
This works if you already have Django installed as a package on your computer.&lt;/p&gt;

&lt;p&gt;We create our project titled &lt;strong&gt;cveate&lt;/strong&gt; using the command just stated and change our current directory (fancy word for "folder") to &lt;strong&gt;cveate&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt; django-admin startproject cveate
&amp;gt;&amp;gt; cd cveate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can run the command below if you use Visual Studio Code (VS Code). This opens a new VS window of the current Django project. Note the trailing dot ("&lt;strong&gt;.&lt;/strong&gt;"):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt; code .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your folder structure should be similar to this (Do not worry about &lt;strong&gt;db.sqlite3&lt;/strong&gt; not being available in your own folder structure):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1606247779803%2Fm3BhTZp0i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1606247779803%2Fm3BhTZp0i.png" alt="cveat_root.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The above folder structure includes the &lt;strong&gt;setting.py&lt;/strong&gt; and &lt;strong&gt;urls.py&lt;/strong&gt; which we would be modifying in our project. In practice, these are the files usually modified in the root app or directory. Root App or directory are the folders that are created when one runs &lt;code&gt;django-admin startproject &amp;lt;root-directory/project folder/ folder to be created&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;To create a new application that will host our actual CV/Resume builder, we run the following command. This takes the form &lt;code&gt;python manage.py &amp;lt;command to create app&amp;gt; &amp;lt;app name to be created&amp;gt;&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt; python manage.py startapp cv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A new app (folder) named "&lt;strong&gt;cv&lt;/strong&gt;" would be created. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Django Commands: Startproject vs Startapp&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
You may be wondering &lt;em&gt;"What is the difference between **startproject&lt;/em&gt;* and &lt;strong&gt;startapp&lt;/strong&gt;?"&lt;em&gt;.&lt;br&gt;&lt;br&gt;
*&lt;code&gt;startproject&lt;/code&gt;&lt;/em&gt; is the base for every Django application to reside, think of a folder inside another folder or a parent folder. Most of Django's setup happens in the settings.py file of the root folder.&lt;br&gt;&lt;br&gt;
&lt;em&gt;&lt;code&gt;startapp&lt;/code&gt;&lt;/em&gt; creates the child folder, here, you as the developer, go about your business on this folder level. Little Django setups are found in folders created using &lt;code&gt;startapp&lt;/code&gt; command.&lt;/p&gt;

&lt;p&gt;An example of our current setup should look like this on your computer:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1606078532123%2FKjimisos2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1606078532123%2FKjimisos2.png" alt="cveat_initial_setup.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can quickly notice that &lt;strong&gt;settings.py&lt;/strong&gt; and other files in the root folder are not seen in the &lt;strong&gt;cv&lt;/strong&gt; folder (we shall refer to this as &lt;em&gt;app&lt;/em&gt; from now) neither do we see many prewritten codes compared to the parent file.&lt;/p&gt;

&lt;p&gt;In order to have Django acknowledge that &lt;strong&gt;cv&lt;/strong&gt; is used in the project, it should be added into &lt;code&gt;INSTALLED_APPS&lt;/code&gt; in &lt;strong&gt;cveate/settings.py&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    # Local app
    'cv',     # &amp;lt;---- new
]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To have routes (URL paths) from &lt;strong&gt;cv&lt;/strong&gt;, create a new file named &lt;code&gt;urls.py&lt;/code&gt; in the &lt;strong&gt;cv&lt;/strong&gt; folder and include the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from django.urls import path
from cv import views

urlpatterns = [

]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To let Django know that it should look for routes (URL paths) in &lt;strong&gt;cv&lt;/strong&gt; app, in &lt;strong&gt;&lt;em&gt;cveate/urls.py&lt;/em&gt;&lt;/strong&gt;, include the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from django.contrib import admin
from django.urls import path, include # &amp;lt;--- new

urlpatterns = [
    path('admin/', admin.site.urls),
    path('resume/', include('cv.urls')), # new
]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With all those done, we run migrations. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are migrations?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Migrations are a way to keep track of changes made to a database schema (Django models). &lt;/p&gt;

&lt;blockquote&gt;
&lt;h3&gt;
  
  
  One can think of migrations as mini version control for databases.
&lt;/h3&gt;
&lt;/blockquote&gt;

&lt;p&gt;Similar to version control systems like Git and Subversion, migrations can be reverted to a previously known working version also known as &lt;em&gt;rollback&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Makemigrations vs Migrate&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The command &lt;code&gt;makemigrations&lt;/code&gt; creates the migration files in children apps which reflect changes made in their &lt;strong&gt;models.py&lt;/strong&gt; whereas the &lt;code&gt;migrate&lt;/code&gt; command implements the changes in the migration files to the database:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt; python manage.py makemigrations
&amp;gt;&amp;gt; python manage.py migrate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Creating an admin user&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Let's create a superuser, AKA an Admin, in order to see how things work behind the scenes. The command &lt;code&gt;createsuperuser&lt;/code&gt; creates a new user which is labeled as an &lt;em&gt;admin&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt; python manage.py createsuperuser
Username: admin
Email address: admin@gmail.com
Password: 
Password (again): 
Superuser created successfully.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Django applications run on default IP port &lt;strong&gt;localhost:8000/&lt;/strong&gt;. To start a local server on your computer, run the following command on a different command line window:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt; python manage.py runserver
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Recall in &lt;strong&gt;cveate/urls.py&lt;/strong&gt; we have a line &lt;code&gt;path('admin/', ...)&lt;/code&gt;, which shows the URL paths used in the browser. For example, &lt;code&gt;http://localhost:8000 **/admin/**&lt;/code&gt;. Similarly, all routes (URLs) will take the same form, for &lt;code&gt;path('resume/', ...)&lt;/code&gt;, the browser will use &lt;code&gt;http://localhost:8000 **/resume/**&lt;/code&gt;.&lt;br&gt;&lt;br&gt;
Our local server runs on &lt;a href="http://localhost:8000/admin/" rel="noopener noreferrer"&gt;http://localhost:8000/admin/&lt;/a&gt; check it out. You should see something similar to this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1606249886918%2FnRASQwMlh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1606249886918%2FnRASQwMlh.png" alt="admin_login_screen.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Input the login details you recently signed up with when you ran &lt;code&gt;createsuperuser&lt;/code&gt; command. On successful login, you should see a similar screen:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1606250063928%2FwxuLOf4aH.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1606250063928%2FwxuLOf4aH.png" alt="admin_login_success.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You're welcome to play around with the &lt;em&gt;admin site&lt;/em&gt;! Django comes battery included with features like this. Of course, one can build a different admin site or extend this already existing version. However, we will be using the default admin site.&lt;/p&gt;

&lt;p&gt;Okay, that seemed like a lot to do! But thank goodness we are done with it. Time to get started with the actual application in Part 3😁🥳. We shall begin by creating our models based on the existing ER-diagram designed using &lt;a href="//www.dbdiagram.io"&gt;dbdiagram.io&lt;/a&gt; tool.&lt;/p&gt;

</description>
      <category>python</category>
      <category>django</category>
      <category>beginners</category>
      <category>resume</category>
    </item>
    <item>
      <title>Create a CV/Resume Builder using the Django Rest Framework (Part 1)</title>
      <dc:creator>Ifenna</dc:creator>
      <pubDate>Sun, 13 Dec 2020 15:46:44 +0000</pubDate>
      <link>https://dev.to/phen_e/create-a-cv-resume-builder-using-the-django-rest-framework-part-1-1acb</link>
      <guid>https://dev.to/phen_e/create-a-cv-resume-builder-using-the-django-rest-framework-part-1-1acb</guid>
      <description>&lt;blockquote&gt;
&lt;h3&gt;
  
  
  "Everything was first an idea"
&lt;/h3&gt;

&lt;p&gt;~ Laptop and the Strategic Lady&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Table of content&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;What is a CV/Resume Builder?&lt;/li&gt;
&lt;li&gt;Software (Application) requirement&lt;/li&gt;
&lt;li&gt;Database design (Entity-Relation diagram)

&lt;ul&gt;
&lt;li&gt;What is normalization?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Resume templates&lt;/li&gt;
&lt;li&gt;What next&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Being a developer involves planning out one's code from start to finish. As a back end developer, a day-to-day part of the job requires understanding the software requirement (SR) or user story before beginning the actual code. &lt;/p&gt;

&lt;p&gt;Besides familiarity with the SR, one should also design the database with normalization in mind, as well as, all-round system interaction with each other.&lt;br&gt;
These points, unfortunately, are not often discussed in tutorials.&lt;/p&gt;

&lt;p&gt;We shall begin this tutorial series with the boring part or interesting part depending on how one sees it. Get your thinking hats on readers!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is a CV/Resume Builder?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you have needed an internship, apprenticeship, or a job then you have certainly been required to have a resume or CV (depending on the company's preference). &lt;/p&gt;

&lt;p&gt;You may have even used CV builders like &lt;a href="//www.visualcv.com"&gt;Visualcv&lt;/a&gt; or &lt;a href="//www.novoresume.com"&gt;Novoresume&lt;/a&gt;. These are awesome tools for creating resumes.&lt;/p&gt;

&lt;p&gt;The purpose of this application in this tutorial is to develop a working API endpoint for CV/Resume building.&lt;/p&gt;

&lt;p&gt;Before we dive in, we should understand the user requirement for the application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Software (Application) requirements&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An application requirement means "&lt;em&gt;what should this application do?&lt;/em&gt;". A requirement gives the developer insight into what the application is about. A software requirement describes what the end-user expects from an application, both in features and functionality.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;CV Builder Software Requirements:&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The user should be able to sign up.&lt;/li&gt;
&lt;li&gt;The user should be able to login in.&lt;/li&gt;
&lt;li&gt;The user should be able to create a resume (duh!)&lt;/li&gt;
&lt;li&gt;The user should be able to edit and delete an existing resume.&lt;/li&gt;
&lt;li&gt;The user should be able to select from an existing list of templates.&lt;/li&gt;
&lt;li&gt;The resume should have the basic information, hence, not all fields are expected to be filled.&lt;/li&gt;
&lt;li&gt;The admin should be the only entity able to create, edit, delete resume templates.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now we have the basic idea, let's decide how the models should look and the entity relationships between them.&lt;/p&gt;

&lt;p&gt;Ideally, we understand that a user can have more than one education history, zero or more internship history, and could have completed zero or more professional courses.&lt;/p&gt;

&lt;p&gt;Furthermore, a resume can have links such as Twitter, Github, LinkedIn, and other social links which an employer could access in order to learn more about the candidate.&lt;br&gt;
These could be optional fields.&lt;/p&gt;

&lt;p&gt;However, we expect the resume owner to have a first and last name, an email address, a professional summary, and a job title. Referees are also a necessary part of resumes which shall be included in our resume builder. &lt;/p&gt;

&lt;p&gt;The Entity-relation diagram which represents our real-world models would look something like this:&lt;/p&gt;

&lt;p&gt;PS: If you haven't tried out dbdiagram.io I recommend it.&lt;/p&gt;

&lt;p&gt;You can observe that foreign keys (One-to-Many or Many-to-One) are used in our ER-diagram rather than the Many-To-Many relationship, this is done in order to achieve a normalized database form.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Normalisation?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A quick meaning is breaking down a large table's relationship into a smaller table so that only fields that directly depend on the "&lt;em&gt;primary key&lt;/em&gt;" fields are on the same table.&lt;/p&gt;

&lt;p&gt;The purpose of normalization is to reduce data redundancy (repetition) and insertion, update, and deletion anomalies.&lt;/p&gt;

&lt;p&gt;Normalization is present in relational databases. Examples of relational databases are MySQL, PostgreSQL, and MariaDB.&lt;/p&gt;

&lt;p&gt;In practice, most relational databases achieve 3rd-degree normalization. Read more about normalization in &lt;a href="https://en.m.wikipedia.org/wiki/Database_normalization"&gt;Wikipedia&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resume Templates&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the next things we can do is to download sample Resumes in their HTML format. You could use this free site &lt;a href="https://superdevresources.com/html-resume-templates/"&gt;Super Dev Resource&lt;/a&gt; or if you already have some Resumes in HTML that is fine too.&lt;/p&gt;

&lt;p&gt;Here's a resume templates I have downloaded. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Sy1ddaR0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1606072226970/ClnaMPXt3.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Sy1ddaR0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1606072226970/ClnaMPXt3.jpeg" alt="preview.jpg" width="568" height="710"&gt;&lt;/a&gt;&lt;br&gt;
These will be added to Django templates in our app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What next?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now, we've got the first steps.&lt;br&gt;
We set up our Django application in the next part.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;em&gt;The inspiration behind this project&lt;/em&gt;
&lt;/h4&gt;

&lt;p&gt;In November, I needed to work on a project and I quickly noticed that there weren't any tutorials on creating a Resume or CV builder.&lt;/p&gt;

&lt;p&gt;I didn't want another To-do or note application. I wanted to write a tutorial that you will find yourself and your friends using.&lt;/p&gt;

&lt;p&gt;I hope this inspires you to build something useful😃&lt;/p&gt;

</description>
      <category>python</category>
      <category>django</category>
      <category>beginners</category>
      <category>resume</category>
    </item>
  </channel>
</rss>
