Skip to content

Latest commit

 

History

History
238 lines (217 loc) · 10.2 KB

README.md

File metadata and controls

238 lines (217 loc) · 10.2 KB

Smartpoet

The project involves development of an online publishing platform for poets where they can publish poems. The name of the site is Smartpoet and is hosted on a heroku live server here https://smartpoet.herokuapp.com I developed an online publishing platform for poets because of my interest and love for Poetry. The web app was developed using:

  • Python
  • Django
  • Javascript
  • PostgreSQL
  • HTML
  • CSS
  • Bootstrap
  • Disqus commenting system (Third party integration)

Screenshots

Artboard 1v1-min

Artboard 1v2-min

Some of the features of Smartpoet includes:

  1. Social login with facebook and google

  2. Multi-level authentication module with email verification, password retrieval

  3. Submission of poems for review and approval

  4. Social sharing of poems to various social platforms

  5. Commenting system integrated with disqus

  6. Categorization of poems based on parent category and sub category

  7. 4 tier user roles (Superadmin, Admin, Poet, Visitor)

    • Superadmin:
      • Manage all site users and settings as well as activities of the lower level roles which include (admin, poet and visitor)
    • Admin:
      • Manage some site users and settings
      • Perform CRUD operations on all poems
      • Create categories and sub categories
      • Approve or disapprove submitted poems
      • Perform CRUD operations on all user accounts
      • Do everything poets can
    • Poets:
      • Register an account
      • Verify email
      • Login to access their account area
      • Setup a poet profile
      • Link social accounts to their smartpoet account
      • Link multiple emails to their account
      • Retrieve and Reset forgotten password
      • Create/submit poems for approval
      • Perform read and update operations on their profile details
      • Perform CRUD operations on their poems
      • Like/Unlike, Upvote/Downvote, Save/Bookmark poems
      • Add comments to poems
    • Visitors:
      • Read poems
      • View poet profile
      • Use a few filters to skim through data pages such as poems, poets etc.
      • Comment on poems through disqus comments
      • Register a new account to be a poet
  8. Perform social actions like:

    • Follow and Unfollow each other
    • Like and Unlike each other poems
    • Upvote and Downvote each other poems
    • Save or Bookmark each other's poems

Distinctiveness, Complexity requirements and Files

  1. The django project was structured to contain 3 apps:

    1. CORE:
      • Serves mostly the frontend views and general assets
      • Models: 0
      • Files:
        • apps.py - config for core app,
        • views.py - displays core/frontend views,
        • urls.py - manages core urls
    2. POSTS:
      • Serves the poems published by registered poets, including categories and sub categories
      • Models: 3
      • Files:
        • filters.py - filter posts data,
        • apps.py - config for posts app,
        • views.py - displays/manages frontend/backend post views,
        • urls.py - manages post urls,
        • forms.py - members form classes and definitions,
        • models.py - post model classes and definitions
    3. MEMBERS:
      • Serves user and profile management
      • Models: 2
      • Files:
        • filters.py - filter retrieved member data,
        • apps.py - config for members app,
        • views.py - displays/manages frontend/backend members views,
        • urls.py - manages members urls,
        • forms.py - posts form classes and definitions,
        • models.py - members model classes and definitions,
        • signals.py - perform specific autonomous actions based on user activity,
        • models.py - members model classes and definitions,
  2. The django project was setup to include Social Logins:

    • FACEBOOK
    • GOOGLE
  3. The django project was setup to integrate Disqus Commenting System

  4. The django project was setup to include social sharing

  5. The django project was setup to include post/poem publishing

  6. The django project was setup to include post/poem voting (upvote and downvote)

How to run the application on your local machine

The application can be run by simply following the steps below:

  1. Install dependencies inside requirements.txt file
  2. Create a postgreSQL database and user
  3. Edit the settings.py file to include new database details
  4. Execute a migrate command ("python manage.py migrate")
  5. Create a super user
  6. Create a profile from the django admin for the super user
  7. Add a site from the django admin by the superuser
  8. Add social applications using API keys from google and facebook

Links

Tech Stack

PYTHON DJANGO POSTGRESQL HTML CSS3 JAVASCRIPT BOOTSTRAP DISQUS

Helpful Resources

  • PYTHON: Python is a programming language that lets you work quickly and integrate systems more effectively.
  • DJANGO: Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design.
  • POSTGRESQL: The World's Most Advanced Open Source Relational Database.
  • HTML5:
    • MDN: Mozilla Developer Network - HTML (HyperText Markup Language)
    • W3SCHOOL: HTML Introduction
  • CSS3:
    • MDN: Mozilla Developer Network - CSS (Cascading Style Sheets)
    • W3SCHOOL: CSS Introduction
  • JAVASCRIPT:
    • MDN: Mozilla Developer Network - JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions
    • W3SCHOOL: JavaScript Introduction
    • Intersection Observer API: Provides a way to asynchronously observe changes in the intersection of a target element with an ancestor element or with a top-level document's viewport
  • BOOTSTRAP5: Powerful, extensible, and feature-packed frontend toolkit.
  • DISQUS: The internet's favorite comment plug-in.
  • MUGSHOTBOT: Automatic beautiful link previews

Author's Links