Notes
Notes taken in threaded-discussion's early design phases.
InfoDesignWeek 15 #
- What's left:
- Fixing the width of cards for scaling
- Review class feedback and implement
- Make threads collapsible
- Refreshing errors
- Scalable with browser size
- Hearts turn red
- Dark mode
- Navigation difficulty
- Fix button color
- Add html header
- Make use of white space
- Only the writer can edit and delete a comment
- Icons
- Final User Flow Diagram
Unfortunately, we were unable to incorporate rendering the initial component load based on the permissions of the thread. However, the data model is there for this to be incorporated at a later date.
Week 14 #
- What's done:
- Backend:
- Database is fully set up and persists data
- CRUD functionality and all API endpoints setup
- Support for multiple threads and pervasive data storage
- Comments have been set up to return chronologically based on most recent
- Frontend:
- Sign-in page with what's your name input
- General design for comment structure and threaded-discussion tag have been created
- Buttons that facilitate API calls for CRUD functionality on comment data
- API/Documentation:
- OpenAPI documentation has been published
- Workflow diagrams for all API endpoints
- 11ty Documentation site is up to date
- Backend:
- What's left:
- Backend:
- Error handling with JWT generation and user authentication
- Cleaning API returns for easier translation to frontend
- Verifying that domain validation is completely functional
- Frontend:
- Visually present all comments on page
- Create visual representation for replies
- Finish main comment structure (working through implementation of icons and content display)
- Verify that UUID management is working properly
- API/Documentation:
- Keep 11ty documenation up to date
- Update Auth endpoint workflow based on backend's final decisions with JWT Auth
- Backend:
- Questions:
- Having trouble conceptualizing management of different threads on frontend (not visually but in the code), any advice/recommendation is welcome!
- Async calls to API end up showing empty comments that just have a "promise" object to start. Other than going synchronous, is there any way to stop the comment HTML from generating until the comment data is fetched? (e.g. a timeout or something similar?)
Week 13 #
Work Completed This Week #
- Significant updates to user interface
- Implemented user authentication and session validation via
/auth
endpoint - Tie user credential checks into other API endpoints
- API Documentation is complete and available here
- User flows have been updated, with User Authentication being the only flow that has not been documented
Week 12 #
API Documentation #
OpenAPI Documentation, including names, functionality, query parameters, and sample return data can be viewed on stoplight.
Work Completed This Week #
Backend: #
- Added backend logic for 4 CRUD related operations for each comment
- Create
/submit-comment
- Read
/get-comment
- Update
/edit-comment
- Delete
/delete-comment
- Create
- Added Additional 'Like Comment' backend API logic
/like-comment
- Created
/auth
API for future implementation of JWT authentication on each API endpoint
API/PM: #
- Create OpenAPI specs on Stoplight for all API endpoints and database models.
Frontend: #
- Continue development of user interface, including setup of base comment structure.
Week 11 #
Comment Workflow #
Reply Workflow #
Week 10 #
Initial Mock-up #
Details #
Visual Changes #
- Add post more visible
- Padding
- Visuals-- make everything pretty
- Seed Propic?
- Edit/delete/reply
- Call BE to get comments
Backend Changes #
- Delete post-main-- content unavliable/replys stay
- Delete reply== gone from the post-main
- Update schema
- Update demo
- Local Storage-- demo
- post-main-- UUID
- comments-- UUID
- Get all comments
Database Schema #
See DBDiagram ER diagram for relational database schema
Questions #
- What is the best way to tie comments to each other in the database?
- What can we use from the Nikki's work vs. what will we need to reinvent?
Next Steps #
- Continue examining Nikki's code to determine what can/should be used in our work.
- Begin fledging out design and initial backend.
- Next: Multithreading
- Previous: Authentication