GithubHelp home page GithubHelp logo

sammyleths / smartpoet-os Goto Github PK

View Code? Open in Web Editor NEW
15.0 1.0 3.0 6.4 MB

Smartpoet is an online publishing platform for poets where they can publish poems, connect with each other and muc more. Developed with Python, Django, Javascript, PostgreSQL, HTML, CSS, Bootstrap, Disqus commenting system

Home Page: https://smartpoet.herokuapp.com/

Python 9.01% CSS 26.63% JavaScript 43.29% HTML 21.07%
bootstrap4 disqus-comments django-project javascript poetry-python poets postgresql publishing-platform python-3

smartpoet-os's Introduction

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

smartpoet-os's People

Contributors

sammyleths avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.