Skip to content

Build a simple portfolio to clearly show the projects you are working on. The idea of the project is to create a website where you can showcase your ongoing as well as upcoming projects.

License

Notifications You must be signed in to change notification settings

PavelKostyuk/Portfolio_Projekt

Repository files navigation

Logo

🚀 Portfolio with Python and Django/Bootstrap5

MIT License LinkedIn pavelkostyuk

Build a simple portfolio to clearly show the projects you are working on. The idea of the project is to create a website where you can showcase your ongoing as well as upcoming projects. This project uses the Bootstrap5 template and aims to cover the breadth between the software development process and the infrastructure it is configured on. Learning the DevOps mindset - from code to server.

🏗️ Site in production. What you're going to get as a result.

Here's what it looks like running on the server: Click here to see my Portfolio build

🍭 Features

  • This website is adaptive to screen size and works well on both mobile and desktop.
  • You will be able to show a picture of yourself and write a short text about yourself on the home page.
  • You will be able to showcase your projects on the "home" page.
  • The site has a navigation header, and newly added projects will be displayed there too.
  • You will be able to write and edit your blog posts in the admin panel with simple editing.
  • You will be able to attach images, videos, and links in your posts.
  • You will be able to create a separate contact page with your credentials.
  • The website has functionality to upload images to the server and can use embedded video links.
  • The website adds new projects in descending order from oldest to newest.
  • You can customize the website as you want and use other different elements offered by Bootstrap 5.

🎓 Knowledge requirements for the project

  • Basic Python
  • Basic Django
  • Basic Linux server (Ubuntu)
  • Basic understanding and experience working with GIT/GitHub (version control)
  • Basic understanding of Cloud infrastructure
  • Basic understanding of databases/SQL (even if you will not need to manually create the database and work with database design, you will need to have "a picture in your head" of how it works in the background because the project uses two databases SQL lite and PostgreSQL one for local development and the other is used on the server side in production).
  • Basic understanding of network (HTTP/HTTPS; ports 80, 443, port redirecting, TSL, SSL, SSH)
  • Basic understanding of the software development process.

💲 Costs and Good to Know:

Additional costs include: purchasing a domain name, SSL certificate and using Cloud Infrastructure. To launch the application you will need to register with one of the following Cloud providers or another. I used DigitalOcean (see link below).

🔬 Technologies

  • Bootstrap 5/ HTML/ CSS/ Javascript
  • Python 3.11.0
  • Django 4.2
  • django-ckeditor 6.5.1
  • gunicorn 19.9.0
  • whitenoise 6.4.0
  • Pillow 9.5.0

🖥️ Run Locally

❗Use CMD

Clone the project

git clone https://github.com/PavelKostyuk/Portfolio_Projekt.git

Go to the project directory

cd Portfolio_Projekt\Portfolio

Create Virtual Env

virtualenv env 

Activate Virtual env

cd env\scripts & activate  

Navigate back to right project directory to install dependencies

   cd ..\.. 

Install dependencies

pip install -r requirements.txt

Makemigrations and migrate to create DB (SQLlite)

python manage.py makemigrations && python manage.py migrate

Collect static files

python manage.py collectstatic

Create user for admin panel

python manage.py createsuperuser
  • Note: No need for email. Create something simple like "admin" with password "abc123"

Run the server

python manage.py runserver

Stop running server

PRESS CTRL+C 

📖 Acknowledgements

Here are some resources I have used to make this project possible. I encourage you to use them to accomplish your project successfully.

✒️ FAQ

Question 1: How do I deploy this project in a live production environment?

It depends on which platform you decide to use and how you want to deploy it. There are various ways to do it, so you can choose the one you like. I have provided information about deployment in the “acknowledgments” section. I used DigitalOcean as a cloud provider.

Question 2: Will you add new features to the project?

Yes, I will implement other things in the project and will update the repository accordingly with new features that I develop.

Question 3: Can I use this code and build my website on top of your initial setup?

Yes, you can modify the code as you like.

⚖️ License

MIT License

Copyright (c) 2023 Pavel Kostyuk

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

Build a simple portfolio to clearly show the projects you are working on. The idea of the project is to create a website where you can showcase your ongoing as well as upcoming projects.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published