The Local Theatre

TODO

  • Implement all backend routes
  • Finalise frontend theme
  • Create frontend database abstractions
  • Implement website assets from zip
  • Add objects for API return values, use functions in a factory pattern. - Have a function for common codes, with a generic one which accepts a number
  • Implement objects for query/JSON params, allow for defaults / optionals
  • Change to UUID for keying
  • Implement tailwind css
  • Use a CSS framework for material design (tailwind)
  • Use useContext & an AuthContext component for authentication state management
  • Make posts a separate page
  • add 20006203 prefix to all parts of the site
  • Order entities by creation date
  • Abstract backend IO operations (reading files, json decoding / encoding)
    • Add JSON stuff to map
    • File IO does not need abstraction
  • Unify codebase (default export, naming)
  • Add placeholder divs for async tasks
  • .editorconfig
  • Implement database integration in backend
  • Make loglevel a proper enum (static final instances)
  • Upgrade tailwind to v3
  • Make home page stay above of footer
  • Add interface to frontend logger
  • Make home page stay above of footer
  • Create insert SQL scripts
  • Change frontend inline buttons to blue
  • Handle backend errors in frontend components
  • Perm checks for restricted pages on frontend
  • Add more data to navbar profile image
  • Unify shadows
  • Fix comments / posts not being updated in UI when they are changed
  • Colour icons
  • Improve backend response api
  • Abstract backend DB calls
    • Controller Repository Database
  • Cache param sources in backend for perf
  • Reactive cache implementation
  • Cache for posts
  • Show component 'showing date' wrong colour in light theme
  • Context menu component
    • Click away to hide
  • Individual post page deletion not working
  • Loading spinner on submit buttons
  • Use SubmitButton for all submit buttons
  • Change CORS policy in backend
  • Add docs to backend
  • Add docs to frontend
  • Animate all moving elements
  • Use useCallback for callback functions
  • Changeable avatars
  • Input validation for edits
  • Deleted comments do not update frontend cache when accounts are switched
    • Cache mismatch?
  • Cache images by md5 (or similar) => b64
    • Investigate cache control headers for this
  • Handle token invalidation
  • Check API (base endpoint) online when we launch
  • Individual post page editing support
  • Use RETURNING in INSERTS for Repositories

Feature List

  • Login
  • Logout
  • Post page
  • Comment list
  • Post list page
  • Comment remove
  • Comment add
  • User promotion
  • User demotion
  • Footer
  • 404 Page
  • Editing of comments
  • Deletion of posts
  • Editing of post
  • Moderation log

Ideas

  • CAPTCHA integration
  • Ratelimiting
  • 2FA
  • Intelligent autoloader for namespaces

Useful Resources