Project for setting up my Portfolio and Blog - this web app.
This repository contains the source code of my Portfolio project. My portfolio web application which I developed through this project is deployed on Digital Ocean and live on realnitinworks.com.
The Django Web Framework powers this project for the most parts while the Frontend is handled by the Bootstrap Framework and some custom styles.
The portfolio web application mainly includes my portfolio and my blog.
I used to write blogs here. The posts were served using 3rd-party applications like Pelican and Netlify.
However, I was not satisfied because I could not write the backend for serving my blog posts. Moreover, Netlify had some issues concerning SSL certificates
and on some days my blog was reported as not secure
. In addition to this, I didn't have a portfolio site until that point. So I decided to develop an application for my portfolio and blog from scratch, writing everything on my own.
The first thing which I did was to create a repository on Github. Then I created a Project on the repository and started listing down all the features (in Kanban style) I needed for my web application. This gave me a clear idea of my target. Slowly but surely I knocked down and completed one task after another.
Many a time I did not know how to tackle a task at first. But I stayed long with the problem without losing focus. I struggled with the problem, kept searching for the answer until I found it.
Before this project, I had experience with Django
and Flask
. However, I wanted to get serious with at least one of these. I decided to go with Django. But it doesn't matter. It is just my personal preference. In the past, I used to get bogged down by the UI design. That is where a framework like Bootstrap
helped me to get started without getting lost in the frontend.
I containerized my applications using Docker
and Docker-Compose
for development and production. My applications run on containers deployed through Docker and Docker-Compose on the Digital Ocean cloud.
Blog
Portfolio
CI/CD
When the local code changes are pushed to Github, Github Actions builds and deploys the application to Digital Ocean droplet
Email Support
Used SendGrid for sending mails. For example: When someone contacts, I will get a mail notification
Code Styling and Formatting
Form protection
Domain and Email
HTTPS support
Digital Ocean Deployment
$ git clone https://github.com/realnitinworks/portfolio.git
$ cd portfolio
$ docker-compose up -d # To start the application. App starts on 127.0.0.1:8000/
$ docker-compose down # To shutdown the application.
Django 3 By Example - Antonio Mele - A great book on Django for developing real-world web applications.
The first project in this book is, in fact, a blog
application.
Testdriven.io course on Django and Django REST Framework
I cannot thank Testdriven.io for the real quality courses they produce. Learned a lot from here regarding Django development for production, using Docker, etc.
The blog posts here are equally good as their courses. My portfolio app deployment on Digital Ocean, CI/CD using Github, Heroku deployment, SSL certificate generation are all based on the learnings from their blog.