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)
- 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 - 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)
- Header (w/
- 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
- Fake data object (faker.js) - JSON array of posts:
- 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)
- Data
- View Single Post - Leo (Harsimrat)
- New Post - Harsimrat
-
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)
- Create our server
-
Express.js SQL API
- Login - POST body has
username
,password
-> fetch matching credentials from DB, compare, return - Tokens and Persistence - Matt
- Login - POST body has
-
Team Members - GET list of CloudClub team members, return
-
Registration - POST body has
username
,password
,email
, andfullname
- 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
- Create table - Jayden
- Get All Posts Summary
- Response
- Post Title
- Post ID
- Post Timestamp
- User ID
- Response
- 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
, andfullname
- 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
- Build Table
-
API Documentation