stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

4h 50m 17s logged

  • Fixed auth middleware (it was using an invalid SQL query)
  • in GET /api/email/request the token is now URL decoded before it’s used
  • Updated POST /api/login to return a 204 instead of redirection
  • Added pending email database keys for the users who are changing their mail
  • Created the POST /api/verify-email endpoint to verify the mail (either at register or update mail)
  • Added Password4J config file and set a salt length of 64
  • Created the notes table and the sharing codes table
  • fixed Thymeleaf using wrong paths for frontend file locations
  • Created the POST /api/account/update-email endpoint to let users change their mail
  • Created the GET /api/notes endpoint to let the user see the notes he has access to
  • Created the POST /api/notes endpoint to let the user create a note under his user
  • Created the GET /api/notes/{noteId} endpoint to get the data of a specific note (if the user has access to it)
  • Created the DELETE /api/notes/{noteId} endpoint to let a user delete his own notes (not the ones made by other even if he has access to them)
  • Created the POST /api/notes/{noteId}/join endpoint to let a user join a note via its sharing code
  • Created the POST /api/notes/{noteId}/share endpoint to create a sharing code for the note (each code is one-time use only)
  • Created the DELETE /api/notes/{noteId}/share endpoint to delete a sharing code for the note (note owner only)
  • Created the POST /api/notes/{noteId}/leave endpoint to let a user leave a note on its own
  • Created the POST /api/notes/{noteId}/kick endpoint to let the note owner kick someone from the note
  • Created a util function to validate a string for all common password requirements (min 8 chars, a number, a uppercase letter, a lowercase letter and a special character)
  • Created a job to clear pending mails that haven’t been verified in over 10 mins
  • Fixed route patterns, when inside a route("/...") { ... } i was using get("/") { ... } instead of get { ... } and this caused the base route to not exist (like /api/route) but only the one with trailing slash (like /api/route/)

once again no frontend yet so here’s some of the code

0
14

Comments 0

No comments yet. Be the first!