Skip to content

Latest commit

 

History

History
164 lines (142 loc) · 5.13 KB

TODO.md

File metadata and controls

164 lines (142 loc) · 5.13 KB

To Do

API

  • 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)

Projects

  • Store project assets seperately
  • Moderator removed projects should be "under review" (only accessible by ID) unless specified to fully delete

Studios

  • 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)

Moderation

  • Allow project assets to be moderated
  • Allow reports to be reviewed by mods

Reporting

  • 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(?)

Ranking

  • 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.

Extra

  • Make sure changing password is secure. (should require login right before, make sure to verify that it does actually happen)

Endpoints

  • 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
      • 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)