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.
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.
python3 -m venv myvenv
source myvenv/bin/activate
pip install django
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.
cd portfolio
python manage.py startapp my_profile
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.
- Create a new repository on GitHub by clicking on the "New" button on the main page.
- Choose a name for your repository and add a brief description.
- Choose whether you want your repository to be public or private.
- Click on "Create repository".
- On your local machine, navigate to the directory where your project is stored using the command line interface.
- Initialize a new Git repository using the following command:
git init
- Add your project files to the repository using the following command:
git add .
- Commit your changes to the repository using the following command:
git commit -m "Initial commit"
- 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
- Push your changes to the GitHub repository using the following command:
git push -u origin main
- Enter your GitHub username and password when prompted.
- Your changes should now be pushed to your GitHub repository.
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.
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.