This is a course project for the course SWE 266P of UCI MSWE in spring 2023. It implements a self-contained web app for online banking. The app is built with Next.js (React.js framework), TypeScript, and Tailwind CSS. It uses MySQL as the database (Prisma as the ORM), deployed on Vercel. An insecure version which you can evaluate is in the branch insecure
.
Node.js 16.8 or later.
-
Duplicate the
.env
file and rename it to.env.local
. Then, fill in the environment variables in the file with the JWT secret and database URL we provide you. -
Install the dependencies:
npm install
-
Run the database generation:
npm run prisma:generate
-
Run the database push:
npm run prisma:push
-
Run the development server:
npm run dev
-
Open http://localhost:3000 with your browser to see the result.
npm run prisma:studio
: Open the Prisma Studio to view and edit the database.
components/
: React componentslib/
: Utility functionshooks/
: React hookspages/
: Next.js pagesapi/
: API routes (serverless functions for backend)*.tsx
: React pages
prisma/
: Prisma schema and migrationspublic/
: Static filesstyles/
: Tailwind CSS stylesnext.config.js
: Next.js configuration.env
: Environment variables.env.local
: Local environment variables (not committed)