Skip to content

Latest commit

 

History

25 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Personal Blog 🌶️📝✍️

This is a project which outputted from elasti_py/ Day071 repo.

| Explain the path till here... | Overview | How to Run | ER-Diagram | What I Learned | Screen Shots |








Explain the path till here...

This project made at elasti_py/ Day057/ 3. Capstone Project for first time and improved many times in elasti_py/ Day059/ Upgraded Blog && elasti_py/ Day060/ 2. blog with contact form && elasti_py/ Day067/ Upgraded Upgraded Blog Site with what we learned about Flask framework in general to learn through the Udemy course Udemy – 100-days-of-code: Python - Angela Yu.

Overview

This project is a personal blog web application built with Flask and its related extensions. Users can create accounts, log in securely, publish blog posts, leave comments, and interact with content shared by other users. The application focuses on user authentication, content management, database integration, and building dynamic web experiences using Flask.

Key Technologies Used:

  • Flask
    • Flask-SQLAlchemy
    • Bootstrap-Flask
    • Flask-CKEditor
    • Flask-WTF
    • Flask-Login
    • Jinja2
    • Wekzeug Security
  • SQLAlchemy
  • SQLite
  • Bootstrap 5
  • HTML, CSS, JavaScript

ER-Diagram

🚀 How to Run

  1. Ensure you have Python installed.

  2. Clone the repository:

    git clone https://github.com/erfaw/elasti_py-Day071-erf-Deploy-Blog-Site
    
  3. Make Virtual Environment:

    python -m venv .venv
    

    then on Git Bash:

    source ./.venv/Scripts/activate
    
  4. Install dependencies:

    pip install requirements.txt
    
  5. Make .env for SECRET_KEY:

    touch .env
    

    then inside it make a key-value pare like this:

    SECRET_KEY="PUT_YOUR_KEY_HERE"
    

    then fill it with a STRONG one!

  6. Run local (DEBUG = True):

    python main.py
    

💡 What I Learned

  • Building a full-stack web application using Flask and its ecosystem.
  • Working with SQLAlchemy ORM and designing relational database schemas.
  • Gaining a deeper understanding of SQLAlchemy models, relationships, and database operations.
  • Implementing user authentication, registration, and login systems.
  • Understanding password security concepts, including hashing and salting.
  • Learning the importance of securely storing user credentials and sensitive data.
  • Using Jinja2 templates and understanding Python web application templating systems.
  • Creating secure web forms with CSRF protection using Flask-WTF.
  • Understanding CSRF attacks and common web security vulnerabilities.
  • Developing greater awareness of fundamental cybersecurity principles in web applications.
  • Applying web design principles, including color theory, typography, user interface (UI), and user experience (UX) design.
  • Managing form validation and browser-side validation behavior for greater control over application logic.
  • Understanding the role of WSGI and Gunicorn in deploying Python web applications.

Screen Shots

Home About
home page screen shot about page screen shot
Contact Login
contact page screen shot login page screen shot
Register Sample Post
register page screen shot sample post page screen shot

About

A project from "100 Days of Code: Python - Angela Yu" for Day071, about deploying a Flask app to accessible across internet.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages