- Endpoints should be seperate files
- Literally just remake all of the endpoints lamo
- Use MongoDB Database
- Make a login system
- Projects stuff
- Reports stuff
- Use minio to store project shit (json and assets)
- Use protobufs to store project jsons
- OAuth2 (Someone please do this😭)
- Scratch Auth
- Github Auth?
- Google Auth??? (why this shit so difficult)
- Be able to connect an account with oauth (e.g. you want to sign in with a password and oauth)
- Store project assets seperately
- Moderator removed projects should be "under review" (only accessible by ID) unless specified to fully delete
- Allow studios to contain a list of project IDs
- Endpoint to get a page of a studio's projects
- Allow studio creators to add users that can add projects (Managers)
- Allow members to follow groups
- Allow studios to enable project adding for all people, followers, managers, or no one
- Allow studios to earn badges
- Allow studios to have ranks (can be used for enabling future features)
- Allow studios to OWN projects (the author is the studio, would allow managers to edit the project)
- Allow project assets to be moderated
- Allow reports to be reviewed by mods
- Add reporting projects and users with reasons
- Add report to user if they report too much content too quickly
- Add report to user if they report the same content
- Automatically add a report to projects with auto-detected content(?)
- Rank users based on if they have more than 3 projects and signed in 5 days ago
- Only ranked users should be able to use Custom Extensions, Files, iframe, HTTP, Website Requests, Network, etc.
- Make sure changing password is secure. (should require login right before, make sure to verify that it does actually happen)
-
dist
- JSZip (for loading projects on frontend)
- getProtobufSchema (for loading projects on frontend)
- pbf (for loading projects on frontend)
-
meta
- api
- home (redirs to home when you get /)
- pingpong (take a guess...)
- robots.txt (get those damn robs out of here!!E2!!11)
-
projects
- get project metadata
- get project protobuf
- get project assets
- get project thumbnail
- redir
- toggle getting projects
- toggle posting projects
- get featured projects (sorted by newest) (page + page count) (meta)
- get remixes of a project (page + page count) (meta)
- "remove" project
- dispute
- respond to dispute
- restore
- delete project (admin/creator only)
- manually feature (admin only)
- vote toggle
- get if user voted (only check yourself/admin can check anyone)
- get all votes (just count)
- love toggle
- get if user loved (only check yourself/admin can check anyone)
- get people who voted (admin only)
- get people who loved (admin only)
- upload project
- update project
- search projects (page + page count) (meta)
- front page (just to make it easier to get all the projects on there)
- get projects by author (page + page count) (meta)
-
Users
- get profile json
- user from code (no idea why this is used but wtv)
- request rank up
- check if banned
- assign possition
- get site mods/admins (admin only)
- login
- login with password
- login with token
- oauth
- all methods
- scratch
- github
- add method
- create account
- add password
- login
- google
- add method
- create account
- add password
- login
- Remove method
- create account
- login
- link account
- unlink account
- add password
- all methods
- change password
- logout
- get id by username
- get username by id
- is admin, is mod, etc (admin only)
- set my featured project
- set bio
- set a users featured project (admin)
- set a users bio (admin)
- get follower count
- get followers
- is following
- follow toggle
- get my feed
- ban toggle
- is banned
- get badges
- set badges (admin only/automated on some endpoints)
- PFP stuff!
-
Messages
- get messages (page + page count)
- get message count
- mark messages as read
-
Reports
- get reports (page + page count)
- get reports on a certain user/project (page + page count (just in case theres a shit ton))
- delete report
- send report
-
Misc
- get profanity list
- set profanity list
- get site stats
- get last tos, privacy policy, and uploading guidelines update
- update tos, privacy policy, or uploading guidelines
- add a few automated badges (like for example when your project is featured)