Skip to content

b-hristov/PhilosophersBlog_Django_final_project

Repository files navigation

General Requirements

The Web application should use the following technologies, frameworks, and development techniques:

  • The application must be implemented using Django Framework
    • The application must have at least 10 web pages :
      • Can be created using function-based views or/and class based-views ;
      • At least 5 of them must be class-based views.
    • The application must have at least 5 independent models (models created by extending, inheritance, and one-to-one relation are considered as one model ( for example User <–> Profile )).
    • The application must have at least 5 forms.
    • The application must have at least 5 templates.
  • Use PostgreSQL as a Database Service
    • Optionally, you can use multiple storages (including PostgreSQL), e.g., files, other Web services, databases (e.g., MySQL / MariaDB / Oracle / etc.)
  • Use Django Template Engine or make the Front-End using JavaScript.
  • Templates (your views must return HTML files) - the same template could be re-used/ used multiple times (according to adjustments, if such needed).
  • Implement Web Page Design based on Bootstrap / Google Material Design, or design your own.
  • The application must have login/register/logout functionality.
  • The application must have a public part (A part of the website, which is accessible by everyone - un/authenticated users and admins).
  • The application must have a private part (accessible only by authenticated users and admins).
  • The application must have a customized admin site (accessible only by admins):
    • Add at least 5 custom options (in total) to the admin interface (e.g., filters, list display, ordering, etc.).
  • Unauthenticated users (public part) have only 'get' permissions, e.g., landing page, details, about page, and login/ register 'post' permissions.
  • Authenticated users (private part) have full CRUD for all their created content.
  • Admins - at least 2 groups of admins:
    • One must have permission to do full CRUD functionalities (superusers) ;
    • The other/s have permission to do limited CRUD functionalities (staff).
    • User roles could be manageable from the admin site.
    • Make sure the role management is secured and error-safe.
  • Implement Exception Handling and Data Validation to avoid crashes when invalid data is entered (both client-side and server-side )
    • When validating data, show appropriate messages to the user

Project presentation

A blog community platform for the lovers of Philosophy. Each user can create his own content and comment or like the content of other users.

Functionality

Main technologies used:

  • Python (Django 4.2.4)
  • PostgreSQL
  • HTML & CSS
  • JavaScript

Additional technologies used:

  • TinyMCE - a widget used for text formatting and styling of the posts

Pages

1. Index page (unauthorized)

index_page_unauth

2. Index page (authorized)

index_page_auth

3. Register page

register_page

4. Login page

login_page

5. Create post page

create_post_page

6. Edit post page

edit_post_page

7. My posts page

my_posts_page

8. Categories page

categories_page

9. Post details page + comments section

post_details_page comments_section

10. My profile page

my_profile_page

11. Edit profile page

edit_profile_page

12. Admin panel

admin_panel admin_panel_1 admin_panel_2

About

Django project defence for SoftUni's Python Web Framework course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published