-
We have created a platform dedicated to sharing and downloading exam materials. On this website, users can:
Upload exam materials - Have extra exam materials? Share them here with those in need.
Download exam materials - Check available exam materials for your courses.
Manage course materials - Administrators can manage courses and files to ensure quality and relevance.
-
Deployed link: Quiztory - Exam Material Sharing Platform
- Users:
- Google OAuth2.0 login
- Update personal profile
- User statistics (number of uploads / number of downloads)
- Files:
- List all files and filter by type
- Display course and exam type for each file
- Support for uploading PDF files and adding descriptions
- Delete and edit files
- Courses:
- Browse all courses
- View files for specific courses
- Administrators:
- Manage courses and files
- Create announcements
- View user activity
- Interface:
- Responsive design
- File preview
- React.js, Next.js
- UI components: shadcn-ui, lucide-react
- Authentication: next-auth
- File upload: @uploadthing/react
- Next.js API Routes
- Database operations: drizzle-orm, drizzle-zod
- Database: @vercel/postgres, pg
- Code formatting and linting: eslint, prettier, @trivago/prettier-plugin-sort-imports, prettier-plugin-tailwindcss
- Type checking: typescript
-
Clone this repository:
git clone https://github.com/guan404ming/quiztory.git cd quiztory
-
Install dependencies:
yarn install
-
Set up environment variables:
- Copy the
.env.example
file to create a new.env.local
file:cp .env.example .env.local
- Open the
.env.local
file and fill in the necessary environment variables (e.g., database URL, API keys, etc.)
- Copy the
-
Run the development server:
yarn dev
-
Open http://localhost:3000 with your browser to see the result.
This project is deployed using Vercel. Check out our Next.js deployment documentation for more details.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.