Skip to content

Latest commit

 

History

History
138 lines (126 loc) · 5.2 KB

ARCHIVED.md

File metadata and controls

138 lines (126 loc) · 5.2 KB

Frontend

V1

Consistent fonts, color scheme, etc.

  • Header - Jayden and Lavanya
    • Working Nav links
  • Footer - Adam and Ansh
    • Social media links
    • Contact emails
  • Home Page Content - Tamim and Ian
    • "Banner"
    • Introductory paragraph
    • Set up carousel
    • Add game screenshots to carousel
  • Login and Register - Tamim and Ian
    • Login page (username and password)
    • Register page (username, first name, last name, email, password, confirm password)
    • Functionality and login persistence
    • User/account settings page
  • Team Page Content - Lavaya and Yunjia
    • Team headshots and bios, grid of "cards" (See Bootstrap's Album example)

V2

  • Landing Page - Lavanya & Adam
    • Center footer
    • Formatting the project snippets (centering image/title, padding textbox)
    • (Shayshu) Add dungeon crawler snippet + image
  • Team page - Jayden
    • Mobile hamburger nav not working
    • Header ("Our Team")
    • Profile images stretch/squish
    • Proper nav tab highlight
  • Login and Register - Jayden
    • Register page layout broken
  • Project page - Ian
    • Typos?
    • Tiled images - centering? or other fix?
  • Container Page for Dungeon Crawler
    • Issues/request/feedback on the sidebars

EJS Transition

  • EJS - Matthew and Harsimrat
    • EJS Tutorial(s)
    • Every page needs navbar item to login and register pages
    • Copy Harsimrat's example
      • Header (w/ active selection), footer
      • assets directories (CSS, JS)
    • Build forum page in EJS
      • Fake data object (faker.js) - JSON array of posts: [ {'subject' : 'POST 1' } ]) {
      • Pass to page via render
      • Build divs from that

Forum

Example

  • Thread
    • Thread title and description - Tamim and Yunjia
    • Post - Bootstrap Table - Ian, Jonathan, Leo
      • Data
        • JS API fetch (for now just have a fake object)
        • For each entry in the JSON object, create a row element in the table DOM
      • Structure
        • Post subject line/title
        • View count
        • Reply count
        • User who posted
        • Timestamp
        • Posts per page
        • Page selection
        • Sorting (will have to discuss format further, and if doing server-side/client-side processing)
  • View Single Post - Leo (Harsimrat)
  • New Post - Harsimrat

Backend

  • Static Routing (public folder)

    • Create our server index.js
    • Import Express, create server (See Express.js Quickstart)
    • Create new folder public
    • Static routing ALL to public folder (See Express.js Documentation)
  • Express.js SQL API

    • Login - POST body has username, password -> fetch matching credentials from DB, compare, return
    • Tokens and Persistence - Matt
  • Team Members - GET list of CloudClub team members, return

  • Registration - POST body has username, password, email, and fullname

    • Check DB for existing credentials with matching username or email (code 409 if conflict)
    • Check password validity: minimum length of 8, has lower and uppercase, numbers, and symbols (40X if failed)
    • INSERT * INTO users ({username}, ... ) (Reference)
    • Build response: 50X for SQL error, 201 for successful creation
  • Forum SQL API

    • Delete Post - Harsimrat
    • Report Post - Harsimrat
    • New Post
      • Create table - Jayden
        • Post ID (internally generated)
        • User ID (token/metadata)
        • Subject line (Plaintext)
        • Body (Markdown text)
        • Timestamp (internally generated)
      • Check auth token (must be logged in to create a new post, if not return 401 forbidden)
      • Check for all necessary data fields and types (see SQL table)
      • Create new table entry, return 201 Created
    • Get All Posts Summary
      • Response
        • Post Title
        • Post ID
        • Post Timestamp
        • User ID
    • Get Single Post by ID
      • Request - query parameters
      • Response
        • Post Body
        • etc.
  • Login Session Management - Matt

    • Make sure it works -> pull request
    • Migrate to a server-side session approach, see Harsimrat's resources
    • Build redis cache DB
  • Game High Score API - Jayden

    • Build Table
      • Username
      • Score
      • Date
    • Get Top N Highest Scores
      • Check N is reasonable
      • Get
      • Return
    • Team Members - GET list of CloudClub team members, return
    • Registration - POST body has username, password, email, and fullname
      • Check DB for existing credentials with matching username or email (code 409 if conflict)
      • Check password validity: minimum length of 8, has lower and uppercase, numbers, and symbols (40X if failed)
      • INSERT * INTO users ({username}, ... ) (Reference)
      • Build response: 50X for SQL error, 201 for successful creation
  • API Documentation