QuizVerse is a web application that allows users to create, share, and participate in quizzes. The platform features a robust authentication system with both local and Google OAuth login options.
- Vue.js
- Vue Router
- Pinia (for state management)
- Node.js
- Express
- MongoDB with Mongoose
- bcrypt.js for password hashing
- Cloudinary for profile image storage
- User authentication
- Email/password registration and login
- Google OAuth integration
- User profiles with customization
- Profile pictures
- Display names
- Personal accent colors
- Admin dashboard
- Quiz creation and participation (implied by project name)
- Node.js
- npm or yarn
- MongoDB
- Clone the repository
- Navigate to the backend directory
cd backend- Install dependencies
npm install- Create a
.envfile with the following variables:
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
JWT_REFRESH_SECRET=your_jwt_refresh_secret
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
- Start the server
npm start- Navigate to the frontend-user directory
cd frontend-user- Install dependencies
npm install- Create a
.envfile with:
VITE_BACKEND_URL=http://localhost:5000
- Start the development server
npm run devTo create an initial admin user:
node temp_create_admin.jsThis will create an admin user with:
- Email: admin@quizverse.com
- Password: TempPass123!
Note: For security purposes, change the admin password after the first login.
The application supports:
- Local authentication with email/password
- Google OAuth login
- Role-based access (admin/user)