Skip to content
Archie Hickmott edited this page Aug 27, 2024 · 2 revisions

Quotebook Wiki

The quotebook is a website where users can submit quotes. With the idea being that if somebody says something funny they can pull out their browser and enter a quote into the database. Along with that there is functionality for a chatroom and an admin portal.

This wiki will contain most of the technical documentation for the quotebook as well a general UI guide.

UI Overview

Quotes

  1. Home Page: This page will contain three quotes
    • random quote
    • quote of the day, which is a random quote selected with the seed of the current date.
    • best quote, which is the most liked quote
  2. Quote List: This page contains the quotes submitted to the site, allowing searching through them.
  3. Quote Page: This page is dedicated to a single quote, and allows comments on these quotes. in progress
  4. Submit Page: This page allows users who are logged in to submit quotes.
  5. Search: This page displays the result of a search
  6. Report: this page contains a form to report a quote in progress

User Accounts

  1. Login: login to an account
  2. Register: Register an account
  3. Account: Where a user can be able to view

Chat

  1. Chatroom: similar to to a 'general' in discord. So site users can chat

Administration

  1. Admin Portal: an overview of data about the website
  2. Admin security overview: used to monitor the security of both the website holistically and to monitor users/user logins
  3. Reports: used to view and take action on reports made my users by dissming reports or deleting a quote
  4. users: used for admins to view user data (id, name, email, style, permission level)
  5. quotes: used for admins to view/edit quotes

Technical Overview

The backend of the website is built using pythons' Flask web framework. One key thing to note is that the backend takes heavy use of flask's "blueprints" feature, each blueprint having it's own directory. This leads to directories that have only one script that contains any meaningful code. This was done to allow the app to grow if it ever reaches a larger scale.

File Tree

This file tree only shows html templates and python scripts

__init__.py
__main__.py
config.py
errors.py
accounts\
    __init__.py
    accounts.py
    templates\
        account_page.html
        login.html
        register.html
admin\
    __init__.py
    admin.py
    templates\
        admin.html
        portal.html
        quotes.html
        reports.html
        security.html
        users.html
chat\
    __init__.py
    chat.py
    templates\
        chat.html
quotes\
    quotes\__init__.py
    quotes\quotes.py
    templates\
        quotes\templates\all.html
        quotes\templates\quote.html
        quotes\templates\search.html
        quotes\templates\submit.html
templates\
    templates\_utils.html
    templates\error.html
    templates\landing.html
    templates\template.html
utils\
    utils\__init__.py
    utils\crypt.py
    utils\databaseManager.py
    utils\logger.py
    utils\quoteManager.py
    utils\userManager.py
Clone this wiki locally