{"id":20657346,"url":"https://github.com/sammyleths/smartpoet-os","last_synced_at":"2025-07-22T00:34:01.805Z","repository":{"id":152783054,"uuid":"580750265","full_name":"SammyLeths/smartpoet-os","owner":"SammyLeths","description":"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","archived":false,"fork":false,"pushed_at":"2025-03-08T13:14:26.000Z","size":6553,"stargazers_count":16,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-08T20:13:09.558Z","etag":null,"topics":["bootstrap4","disqus-comments","django-project","javascript","poetry-python","poets","postgresql","publishing-platform","python-3"],"latest_commit_sha":null,"homepage":"https://smartpoet.herokuapp.com/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SammyLeths.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-12-21T10:58:56.000Z","updated_at":"2025-04-09T10:23:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"32eedcfd-c8c3-411c-8184-429b4cda6405","html_url":"https://github.com/SammyLeths/smartpoet-os","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SammyLeths/smartpoet-os","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SammyLeths%2Fsmartpoet-os","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SammyLeths%2Fsmartpoet-os/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SammyLeths%2Fsmartpoet-os/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SammyLeths%2Fsmartpoet-os/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SammyLeths","download_url":"https://codeload.github.com/SammyLeths/smartpoet-os/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SammyLeths%2Fsmartpoet-os/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266404951,"owners_count":23923498,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-21T11:47:31.412Z","response_time":64,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap4","disqus-comments","django-project","javascript","poetry-python","poets","postgresql","publishing-platform","python-3"],"created_at":"2024-11-16T18:20:05.797Z","updated_at":"2025-07-22T00:34:01.794Z","avatar_url":"https://github.com/SammyLeths.png","language":"JavaScript","funding_links":["https://buymeacoffee.com/sammyleths"],"categories":[],"sub_categories":[],"readme":"\u003ch1\u003eSmartpoet\u003c/h1\u003e\n\nThe project involves development of an online publishing platform for poets where they can publish poems.\nThe name of the site is Smartpoet and is hosted on a heroku live server here https://smartpoet.herokuapp.com\nI developed an online publishing platform for poets because of my interest and love for Poetry. The web app was developed using:\n\n\u003cul\u003e\n  \u003cli\u003ePython\u003c/li\u003e\n  \u003cli\u003eDjango\u003c/li\u003e\n  \u003cli\u003eJavascript\u003c/li\u003e\n  \u003cli\u003ePostgreSQL\u003c/li\u003e\n  \u003cli\u003eHTML\u003c/li\u003e\n  \u003cli\u003eCSS\u003c/li\u003e\n  \u003cli\u003eBootstrap\u003c/li\u003e\n  \u003cli\u003eDisqus commenting system (Third party integration)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch2\u003eScreenshots\u003c/h2\u003e\n\n![Artboard 1v1-min](https://user-images.githubusercontent.com/64320618/210186021-5996d900-674f-438a-80b7-bf06b3fb72ef.png)\n\n![Artboard 1v2-min](https://user-images.githubusercontent.com/64320618/210203253-cac788e4-d5a9-49d6-b44a-308e30dcd1ee.png)\n\n\u003ch2\u003eSome of the features of Smartpoet includes:\u003c/h2\u003e\n\n\u003col type=\"A\"\u003e\n  \u003cli\u003e\u003ch4\u003eSocial login with facebook and google\u003c/h4\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ch4\u003eMulti-level authentication module with email verification, password retrieval\u003c/h4\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ch4\u003eSubmission of poems for review and approval\u003c/h4\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ch4\u003eSocial sharing of poems to various social platforms\u003c/h4\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ch4\u003eCommenting system integrated with disqus\u003c/h4\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ch4\u003eCategorization of poems based on parent category and sub category\u003c/h4\u003e\u003c/li\u003e\n    \n  \u003cli\u003e\u003ch4\u003e4 tier user roles (Superadmin, Admin, Poet, Visitor)\u003c/h4\u003e\n    \u003cul\u003e\n      \u003cli\u003eSuperadmin:\n        \u003cul\u003e\n          \u003cli\u003eManage all site users and settings as well as activities of the lower level roles which include (admin, poet and visitor)\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n      \u003cli\u003eAdmin:\n        \u003cul\u003e\n          \u003cli\u003eManage some site users and settings\u003c/li\u003e\n          \u003cli\u003ePerform CRUD operations on all poems\u003c/li\u003e\n          \u003cli\u003eCreate categories and sub categories\u003c/li\u003e\n          \u003cli\u003eApprove or disapprove submitted poems\u003c/li\u003e\n          \u003cli\u003ePerform CRUD operations on all user accounts\u003c/li\u003e\n          \u003cli\u003eDo everything poets can\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e \n      \u003cli\u003ePoets:\n        \u003cul\u003e\n          \u003cli\u003eRegister an account\u003c/li\u003e\n          \u003cli\u003eVerify email\u003c/li\u003e\n          \u003cli\u003eLogin to access their account area\u003c/li\u003e\n          \u003cli\u003eSetup a poet profile\u003c/li\u003e\n          \u003cli\u003eLink social accounts to their smartpoet account\u003c/li\u003e\n          \u003cli\u003eLink multiple emails to their account\u003c/li\u003e\n          \u003cli\u003eRetrieve and Reset forgotten password\u003c/li\u003e\n          \u003cli\u003eCreate/submit poems for approval\u003c/li\u003e\n          \u003cli\u003ePerform read and update operations on their profile details\u003c/li\u003e\n          \u003cli\u003ePerform CRUD operations on their poems\u003c/li\u003e\n          \u003cli\u003eLike/Unlike, Upvote/Downvote, Save/Bookmark poems\u003c/li\u003e\n          \u003cli\u003eAdd comments to poems\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n      \u003cli\u003eVisitors:\n        \u003cul\u003e\n          \u003cli\u003eRead poems\u003c/li\u003e\n            \u003cli\u003eView poet profile\u003c/li\u003e\n            \u003cli\u003eUse a few filters to skim through data pages such as poems, poets etc.\u003c/li\u003e\n            \u003cli\u003eComment on poems through disqus comments\u003c/li\u003e\n            \u003cli\u003eRegister a new account to be a poet\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003e\u003ch4\u003ePerform social actions like:\u003c/h4\u003e\n    \u003cul\u003e\n      \u003cli\u003eFollow and Unfollow each other\u003c/li\u003e\n      \u003cli\u003eLike and Unlike each other poems\u003c/li\u003e\n      \u003cli\u003eUpvote and Downvote each other poems\u003c/li\u003e\n      \u003cli\u003eSave or Bookmark each other's poems\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n\u003c/ol\u003e\n\n---\n\n\u003ch2\u003eDistinctiveness, Complexity requirements and Files\u003c/h2\u003e\n\n\u003col type=\"A\"\u003e\n  \u003cli\u003e\u003ch4\u003eThe django project was structured to contain 3 apps:\u003c/h4\u003e\n    \u003col type=\"1\"\u003e\n      \u003cli\u003e\u003cb\u003eCORE:\u003c/b\u003e\n        \u003cul\u003e\n          \u003cli\u003eServes mostly the frontend views and general assets\u003c/li\u003e\n          \u003cli\u003eModels: 0\u003c/li\u003e\n          \u003cli\u003eFiles:\n            \u003cul\u003e\n              \u003cli\u003eapps.py - config for core app, \u003c/li\u003e\n              \u003cli\u003eviews.py - displays core/frontend views, \u003c/li\u003e\n              \u003cli\u003eurls.py - manages core urls \u003c/li\u003e\n            \u003c/ul\u003e\n          \u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n      \u003cli\u003e\u003cb\u003ePOSTS:\u003c/b\u003e\n        \u003cul\u003e\n          \u003cli\u003eServes the poems published by registered poets, including categories and sub categories\u003c/li\u003e\n          \u003cli\u003eModels: 3\u003c/li\u003e\n          \u003cli\u003eFiles:\n            \u003cul\u003e\n              \u003cli\u003efilters.py - filter posts data, \u003c/li\u003e\n              \u003cli\u003eapps.py - config for posts app, \u003c/li\u003e\n              \u003cli\u003eviews.py - displays/manages frontend/backend post views, \u003c/li\u003e\n              \u003cli\u003eurls.py - manages post urls, \u003c/li\u003e\n              \u003cli\u003eforms.py - members form classes and definitions, \u003c/li\u003e\n              \u003cli\u003emodels.py - post model classes and definitions \u003c/li\u003e\n            \u003c/ul\u003e\n          \u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n      \u003cli\u003e\u003cb\u003eMEMBERS:\u003c/b\u003e\n        \u003cul\u003e\n          \u003cli\u003eServes user and profile management \u003c/li\u003e\n          \u003cli\u003eModels: 2\u003c/li\u003e\n          \u003cli\u003eFiles:\n            \u003cul\u003e\n              \u003cli\u003efilters.py - filter retrieved member data, \u003c/li\u003e\n              \u003cli\u003eapps.py - config for members app, \u003c/li\u003e\n              \u003cli\u003eviews.py - displays/manages frontend/backend members views, \u003c/li\u003e\n              \u003cli\u003eurls.py - manages members urls, \u003c/li\u003e\n              \u003cli\u003eforms.py - posts form classes and definitions, \u003c/li\u003e\n              \u003cli\u003emodels.py - members model classes and definitions, \u003c/li\u003e\n              \u003cli\u003esignals.py - perform specific autonomous actions based on user activity, \u003c/li\u003e\n              \u003cli\u003emodels.py - members model classes and definitions, \u003c/li\u003e\n            \u003c/ul\u003e\n          \u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n    \u003c/ol\u003e\n  \u003c/li\u003e\n  \u003cli\u003e\u003ch4\u003eThe django project was setup to include Social Logins:\u003c/h4\u003e\n    \u003cul\u003e\n      \u003cli\u003eFACEBOOK\u003c/li\u003e\n      \u003cli\u003eGOOGLE\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003e\u003ch4\u003eThe django project was setup to integrate Disqus Commenting System\u003c/h4\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ch4\u003eThe django project was setup to include social sharing\u003c/h4\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ch4\u003eThe django project was setup to include post/poem publishing\u003c/h4\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ch4\u003eThe django project was setup to include post/poem voting (upvote and downvote)\u003c/h4\u003e\u003c/li\u003e\n\u003c/ol\u003e\n   \n\u003ch2\u003eHow to run the application on your local machine\u003c/h2\u003e\n\u003cp\u003eThe application can be run by simply following the steps below:\u003c/p\u003e\n\u003col type=\"1\"\u003e\n  \u003cli\u003eInstall dependencies inside requirements.txt file\u003c/li\u003e\n  \u003cli\u003eCreate a postgreSQL database and user\u003c/li\u003e\n  \u003cli\u003eEdit the settings.py file to include new database details\u003c/li\u003e\n  \u003cli\u003eExecute a migrate command (\"python manage.py migrate\")\u003c/li\u003e\n  \u003cli\u003eCreate a super user\u003c/li\u003e\n  \u003cli\u003eCreate a profile from the django admin for the super user\u003c/li\u003e\n  \u003cli\u003eAdd a site from the django admin by the superuser\u003c/li\u003e\n  \u003cli\u003eAdd social applications using API keys from google and facebook\u003c/li\u003e\n\u003c/ol\u003e\n\n\u003ch2\u003eLinks\u003c/h2\u003e\n\n\u003cul\u003e\n  \u003cli\u003eWeb App Demo: \u003ca href=\"https://smartpoet.herokuapp.com/\" target=\"_blank\"\u003ehttps://smartpoet.herokuapp.com/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch2\u003eTech Stack\u003c/h2\u003e\n\n\u003cp align=\"left\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/python-2B5A82.svg?style=for-the-badge\u0026logo=python\u0026logoColor=white\" alt=\"PYTHON\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/django-0C4B33.svg?style=for-the-badge\u0026logo=django\u0026logoColor=white\" alt=\"DJANGO\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/postgresql-336791.svg?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white\" alt=\"POSTGRESQL\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge\u0026logo=html5\u0026logoColor=white\" alt=\"HTML\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge\u0026logo=css3\u0026logoColor=white\" alt=\"CSS3\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/JavaScript-black?style=for-the-badge\u0026logo=javascript\u0026logoColor=%23F7DF1E\" alt=\"JAVASCRIPT\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/bootstrap-722DF9.svg?style=for-the-badge\u0026logo=bootstrap\u0026logoColor=white\" alt=\"BOOTSTRAP\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/disqus-4EAFFE.svg?style=for-the-badge\u0026logo=disqus\u0026logoColor=white\" alt=\"DISQUS\" /\u003e\n\u003c/p\u003e\n\n\u003ch2\u003eHelpful Resources\u003c/h2\u003e\n\n\u003cul\u003e\n  \u003cli\u003e\n    \u003cb\u003e\u003ca href=\"https://www.python.org/\" target=\"_blank\"\u003ePYTHON\u003c/a\u003e\u003c/b\u003e: Python is a programming language that lets you work quickly\nand integrate systems more effectively.\n  \u003c/li\u003e\n  \u003cli\u003e\n    \u003cb\u003e\u003ca href=\"https://www.djangoproject.com/\" target=\"_blank\"\u003eDJANGO\u003c/a\u003e\u003c/b\u003e: Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design.\n  \u003c/li\u003e\n  \u003cli\u003e\n    \u003cb\u003e\u003ca href=\"https://www.postgresql.org/\" target=\"_blank\"\u003ePOSTGRESQL\u003c/a\u003e\u003c/b\u003e: The World's Most Advanced Open Source Relational Database.\n  \u003c/li\u003e\n  \u003cli\u003e\u003cb\u003eHTML5:\u003c/b\u003e \n    \u003cul\u003e\n      \u003cli\u003e\u003ca href=\"https://developer.mozilla.org/en-US/docs/Web/HTML\" target=\"_blank\"\u003eMDN\u003c/a\u003e: Mozilla Developer Network - HTML (HyperText Markup Language)\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"https://www.w3schools.com/html/html_intro.asp\" target=\"_blank\"\u003eW3SCHOOL\u003c/a\u003e: HTML Introduction\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003e\u003cb\u003eCSS3:\u003c/b\u003e \n    \u003cul\u003e\n      \u003cli\u003e\u003ca href=\"https://developer.mozilla.org/en-US/docs/Web/CSS\" target=\"_blank\"\u003eMDN\u003c/a\u003e: Mozilla Developer Network - CSS (Cascading Style Sheets)\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"https://www.w3schools.com/css/css_intro.asp\" target=\"_blank\"\u003eW3SCHOOL\u003c/a\u003e: CSS Introduction\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003e\u003cb\u003eJAVASCRIPT:\u003c/b\u003e \n    \u003cul\u003e\n      \u003cli\u003e\u003ca href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript\" target=\"_blank\"\u003eMDN\u003c/a\u003e: Mozilla Developer Network - JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"https://www.w3schools.com/js/js_intro.asp\" target=\"_blank\"\u003eW3SCHOOL\u003c/a\u003e: JavaScript Introduction\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\" target=\"_blank\"\u003eIntersection Observer API\u003c/a\u003e: 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\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003e\n    \u003cb\u003e\u003ca href=\"https://getbootstrap.com/\" target=\"_blank\"\u003eBOOTSTRAP5\u003c/a\u003e\u003c/b\u003e: Powerful, extensible, and feature-packed frontend toolkit.\n  \u003c/li\u003e\n  \u003cli\u003e\n    \u003cb\u003e\u003ca href=\"https://disqus.com/\" target=\"_blank\"\u003eDISQUS\u003c/a\u003e\u003c/b\u003e: The internet's favorite comment plug-in.\n  \u003c/li\u003e\n  \u003cli\u003e\n    \u003cb\u003e\u003ca href=\"https://mugshotbot.com/\" target=\"_blank\"\u003eMUGSHOTBOT\u003c/a\u003e\u003c/b\u003e: Automatic beautiful link previews\n  \u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch2\u003eAuthor's Links\u003c/h2\u003e\n\n\u003cul\u003e\n  \u003cli\u003ePortfolio - \u003ca href=\"https://sammyleths.com\" target=\"_blank\"\u003e@SammyLeths\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003eLinkedin - \u003ca href=\"https://www.linkedin.com/in/eyiowuawi/\" target=\"_blank\"\u003e@SammyLeths\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003eTwitter - \u003ca href=\"https://twitter.com/SammyLeths\" target=\"_blank\"\u003e@SammyLeths\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003eBuy me a Coffee - \u003ca href=\"https://buymeacoffee.com/sammyleths\" target=\"_blank\"\u003e @SammyLeths \u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsammyleths%2Fsmartpoet-os","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsammyleths%2Fsmartpoet-os","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsammyleths%2Fsmartpoet-os/lists"}