- Introduction
- Packages Installed/Used
- Design/Specifications
- User Authentication
- User Authorization
- What I Learnt
- How to Run it Locally
- Screenshots Sample
Blogger's Zone is an exam project created and designed by Gregory Ogbemudia, a student of AltSchool Africa School of Software Engineering in Backend (Python) Engineer, already creating magic using Flask framework!
This documentation sets to introduce and give you details of the design features of the Blogger's Zone.
The Blogger's Zone is a blog site where both authors and readers can explore the thoughts and minds of others, while getting inspired to write as well. In this Blog, you enjoy reading, enjoy writing and touch lives.
This Blog have the following pages:
These comprise Home Page (which lists only published articles and authors), About Page, Contact Page and View Single Article Page, visible to everyone.
- This page has button links to Sign-Up or Login (when not logged in) but has button links to "create articles" and "view your dashboard".
- It has list of only published articles and authors.
- This page tells about the creator and the blog.
- In addition, it has the list of authors and their email.
Contact Page
These are the Sign-Up and Login Pages, only visible when you are not logged in.
These are pages and menus only logged users have access to. They include the Dashboard Page, Logout Menu, Create Article Page, Edit Article Page, Update Profile Page.
The main packages that were pip installed are:
- Flask
- Flask-CKEditor
- Flask-Login
- Flask-SQLAlchemy
- Flask-WTF
There are 2 main category of access to this Blog:
These consists of Authors and Commenters are required to sign up and login with their account to be able to create, save or publish, edit and delete their articles.
However, Viewers/Readers can only view or read articles only published articles on the Home Page of this Blog. They can also view comments but cannot drop comments or write an article.
- Every user must have a first name, last name, username (unique), email (unique) and a password to sign up using the Sign-Up Page to become a contributor. Also, 'About Author' field is optional.
- Every contributor can either log in using a unique "username" (or a unique "email") and password.
NOTE: the passwords are hashed before they are saved on the database
Below are various implemented authorizations level on this Blog:
Only contributors can create and either "save as draft" or publish articles on this blog. Saved articles can only be accessed by their authors and then, can still edit or publish them.
All contributors and viewers can view/read all published articles on the Home Page.
Only the author of an article can edit or delete the article, either saved or published.
All can view comments by others but only contributors can add comments to an article.
Only logged-in users can see their own dashboard, which has 2 sections namely; Your Profile and Your Articles (published and saved as draft).
Here, only logged-in users have button links to:
- update their profile
- delete their profile
- log out of their session
Logged-in users only see their articles, which are displayed under 2 separate tabs:
- Published
- Saved As Draft
Here, they also have buttons links to either create, view, edit, delete their articles.
On this project, below are a list of what I learnt:
- Routing
- User Authentication
- User Authorization
- Debugging
- Web Design
- Using Bootstrap CSS & JavaScripts
- Database Management
- Using Flash Message
- Documentation
Python 3
Run the below steps on the terminal.
$ git clone https://github.com/OSQUAREG/Blogger-Zone.git
$ source venv/Scripts/activate
$ pip install -r requirements.txt
$ python app.py
On the terminal, copy the generated link and paste on your browser to access the application.
It was worth the while to have engaged on this project, and it has helped to improve my Backend skills in Flask framework and exploring its related packages.
Contact or collaborate with me on:
Thanks, AltSchool Africa for this opportunity!
Let's continue to #CreateMagic!










