This repository contains my submission for the Full Stack Developer (Junior) job application assignment
- Technologies
- How to run
- ER diagram
- Initial Data
- Frontend UI
- API Document
- How I developed this project
Frontend: Next.js, TailwindCSS, NextAuth, React-Toastify
Backend: Node.js, Express.js, Prisma, Jest, Swagger, bcryptjs
Database: MySQL
Tools: VS Code, Git and GitHub, draw.io, Figma, Postman, MySQL Workbench, Docker
- Run
git clone https://github.com/NonRoute/University-User-Management-System
- Navigate to
server
directory - Create file named
.env
by copying from.env.example
- Navigate to
client
directory - Create file named
.env.local
by copying from.env.local.example
- Run
docker-compose up
- Wait until all services start. Once ready, it should look like this
- Install MySQL Workbench and update the
DATABASE_URL
in the.env
file insideserver
directory to match with your connection string - Change
NEXTAUTH_URL_INTERNAL
in the.env
file insideclient
directory tohttp://localhost:8080
- Navigate to
server
directory - Run
npm install
- Run
npx prisma migrate dev --name init
to setup the database schema - Run
npm run dev
to start the server - Navigate to
client
directory - Run
npm install
andnpm run dev
to start the client
Open http://localhost:3000 to see the frontend
Open http://localhost:8080/api-docs to see the API Document
Run npx prisma migrate reset
in server
directory to reset and seed the database with inital data
Run npx prisma db seed
in server
directory to seed the database with inital data
User
Username | Password | Role |
---|---|---|
admin | 123 | admin |
teacher | 123 | teacher |
teacher2 | 123 | teacher |
student | 123 | student |
student2 | 123 | student |
Course
Name |
---|
Computer Programming |
Data Structure |
Algorithm Design |
Teach
Username | Course Name |
---|---|
teacher | Computer Programming |
teacher | Data Structure |
teacher2 | Computer Programming |
Enroll
Username | Course Name | Grade |
---|---|---|
student | Computer Programming | A |
student | Data Structure | |
student2 | Computer Programming |
Landing page
Login page
Users page (Admin Access Only)
Create user page (Admin Access Only)
Open http://localhost:8080/api-docs to see the API Document
- Understanding the requirements
- Choose frontend, backend languages and frameworks and database to use
- Create ER diagram and database schema
- Create UI design with Figma View it here
- Design API endpoints and develop backend server
- Create API document with swagger
- Develop frontend
- Create docker compose
- Create backend unit testing