Skip to content

Code Refactors #163

@FegelSamuel

Description

@FegelSamuel

Description:
List of stuff Duc and Samuel Ma noticed when reviewing the master branch of the codebase as of 5:05 PM, 8/20/2025.

TODO:

  • Give every model in the prisma schema its own primary key (a variable named id given @id constraint). Of course, you will need to make the foreign keys to the other tables unique, but not primary keys. (all primary keys are unique, but not all uniques are primary keys).
  • Capitalize non-scalar values in the schema.prisma
model Quiz {
  id        Int            @id @default(autoincrement())
  questions Question[] // turn this into capital Q
  responses QuizResponse[] // capital R -> Responses

  @@map("quizzes")
}
  • Check that the ER diagram matches up with the schema.
  • Remove all mentions of import { readBody, send, setResponseStatus } from "h3"; because Nuxt3 already uses h3 routing by default.
  • Call upon the prisma client from the middleware instead of making new PrismaClient() sometimes. Go through the APIs and fix each one if it makes that mistake. If it's an Event (like if it uses EventHandler), it should call upon the event context for the prisma client.
  • Delete index.php
  • Eventually migrate to magic links NuxtAuth
  • Rename the API endpoints to be more RESTful
  • Go through all the pages and change <script setup> to <script setup lang='ts'>
  • Inspect big commented code. Probably delete it if it is deprecated completely.
  • Convert <meta name="referrer" content="no-referrer"> in adminpage.vue to use definePageMeta; https://nuxt.com/docs/4.x/api/utils/define-page-meta
  • Inspect all mentions of import { ref, computed } from "vue";. It might be required for some ungodly reason, but is likely not required because this is a vue file.
  • Probably delete pnpm-lock.yaml
  • Probably delete error.vue or move it into pages directory

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions