Skip to content

Creating a website to display your resume is a great way to showcase your skills and experience to potential employers and clients in a modern and interactive format. With the right design and content, your online resume can help you stand out from the competition and make a lasting impression.

Notifications You must be signed in to change notification settings

bibinkunjumon2020/my_portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My Portfolio

Creating a website to display your resume is a great way to showcase your skills and experience to potential employers and clients in a modern and interactive format. With the right design and content, your online resume can help you stand out from the competition and make a lasting impression on your visitors.

Technology & Services - AWS/NGINX/Gunicorn/Certbot

I used Amazon Web Services (AWS) to host my website, leveraging several of their powerful services. Firstly, I utilized Amazon Elastic Compute Cloud (EC2) to create a virtual machine instance that served as my web server. I then used Route 53, Amazon's Domain Name System (DNS) service, to register my domain name and point it to the IP address of my EC2 instance.

To serve my website content to visitors, I used the NGINX web server software, which provides powerful and efficient serving of static and dynamic content. I also employed Supervisor, a process control system, to manage the NGINX and Gunicorn processes and ensure that they remained running in the background.

Finally, to secure my website, I used the Certbot tool to install SSL/TLS certificates from Let's Encrypt. This provides encrypted communication between my server and visitors' browsers, ensuring that sensitive information remains protected.

Overall, AWS provided a robust and scalable infrastructure for hosting my website, with a range of powerful tools and services to help ensure reliable and secure operation.

Commands And Steps-Django

Installation

Create a virtual environment

  python3 -m venv myvenv

Activate the virtual environment

source myvenv/bin/activate

Install Django

pip install django

Create a new Django project

django-admin startproject portfolio

This command will create a new directory named projectname in your current directory, which will contain the basic structure for a Django project. It will also create a manage.py file, which can be used to run various administrative tasks such as starting the development server, creating database tables, and running tests.

Change directory into the new project

cd portfolio

Create a new app within the project

python manage.py startapp my_profile

Run the server

python manage.py runserver

By following the above steps, you can create a Django project and app, and run it on a local server. From here, you can begin to add your own custom styling and content to create a unique and visually appealing online resume.

GitHub - Repository

  1. Create a new repository on GitHub by clicking on the "New" button on the main page.
  2. Choose a name for your repository and add a brief description.
  3. Choose whether you want your repository to be public or private.
  4. Click on "Create repository".
  5. On your local machine, navigate to the directory where your project is stored using the command line interface.
  6. Initialize a new Git repository using the following command:
git init
  1. Add your project files to the repository using the following command:
git add .
  1. Commit your changes to the repository using the following command:
git commit -m "Initial commit"
  1. Connect your local repository to the remote GitHub repository using the following command, replacing "username" with your GitHub username and "repository" with the name of your repository:
git remote add origin https://github.com/username/repository.git
  1. Push your changes to the GitHub repository using the following command:
git push -u origin main
  1. Enter your GitHub username and password when prompted.
  2. Your changes should now be pushed to your GitHub repository.

Deployment - AWS

To host your Django project on AWS console, you need to follow the below steps:

Update the system and upgrade any installed packages with the following commands:

sudo apt-get update
sudo apt-get upgrade

Install Python virtual environment with the following command:

sudo apt-get install python3-venv

Create a new virtual environment for your project with the following command:

python3 -m venv env_portfolio

Activate the virtual environment with the following command:

source env_portfolio/bin/activate

Install Django within the virtual environment with the following command:

pip3 install Django

Check the list of installed packages with the following command:

pip list

Install Nginx and Gunicorn with the following commands:

sudo apt-get install -y nginx
pip install gunicorn

Create a new Gunicorn configuration file with the following commands:

cd /etc/supervisor/conf.d/
sudo touch gunicorn.conf
sudo nano gunicorn.conf

Add the following lines to the file:

[program:gunicorn]
directory=/home/ubuntu/my_portfolio
command=/home/ubuntu/env_portfolio/bin/gunicorn --workers 3 --bind unix:/home/ubuntu/my_portfolio/app.sock portfolio.wsgi:application
autostart=true
autorestart=true
stderr_logfile=/var/log/gunicorn/gunicorn.err.log
stdout_logfile=/var/log/gunicorn/gunicorn.out.log

[group:guni]
programs:gunicorn

Create a new directory for Gunicorn logs with the following command:

sudo mkdir /var/log/gunicorn

Reload and update the Supervisor configuration with the following commands:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl status

Check the Gunicorn error log for any errors with the following command:

sudo nano /var/log/gunicorn/gunicorn.err.log

Navigate to the Nginx configuration directory with the following commands:

cd ..
cd ..
cd /etc/nginx/

Navigate to the Nginx sites-available directory with the following command:

cd sites-available/

Create a new configuration file for your Django project with the following command:

sudo touch django.conf
sudo nano django.conf

Add the following lines to the file:

server {
    listen 80;
    server_name your-domain-name.com;
    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/ubuntu/my_portfolio;
    }
    location / {
        include proxy_params;
        proxy_pass http://unix:/home/ubuntu/my_portfolio/app.sock;
    }
}

Create a symbolic link for your configuration file in the sites-enabled directory with the following command:

sudo ln django.conf /etc/nginx/sites-enabled/

Restart the Nginx service with the following command:

sudo service nginx restart

Install an SSL certificate with Certbot with the following command:

sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx
nslookup your-domain-name.com
sudo certbot --nginx -d YOUR DOMAIN

Once the SSL certificate is generated and installed, it will encrypt the traffic between the website and its visitors, providing a secure browsing experience.

Screenshots of Website

image

image

🚀 About Me

I am a skilled software developer with over three years of experience in delivering secure and reliable applications. My expertise lies in back-end user development and AI-related work. Currently, I am employed as an AI and Full Stack Django Web Developer at Sayone Technology Ltd., a US-based IT firm. I have a strong background in Python programming and am dedicated to continuously improving my skills and knowledge in the field.

About

Creating a website to display your resume is a great way to showcase your skills and experience to potential employers and clients in a modern and interactive format. With the right design and content, your online resume can help you stand out from the competition and make a lasting impression.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published