Skip to content

QuizVerse: A web application for creating, sharing, and participating in quizzes. Features include robust authentication (local and Google OAuth), customizable user profiles, and an admin dashboard. Built using Vue.js, Node.js, Express, and MongoDB.

Notifications You must be signed in to change notification settings

AliHamzaAzam/quizverse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QuizVerse

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.

Technologies Used

Frontend

  • Vue.js
  • Vue Router
  • Pinia (for state management)

Backend

  • Node.js
  • Express
  • MongoDB with Mongoose
  • bcrypt.js for password hashing
  • Cloudinary for profile image storage

Features

  • 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)

Setup Instructions

Prerequisites

  • Node.js
  • npm or yarn
  • MongoDB

Backend Setup

  1. Clone the repository
  2. Navigate to the backend directory
cd backend
  1. Install dependencies
npm install
  1. Create a .env file 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
  1. Start the server
npm start

Frontend Setup

  1. Navigate to the frontend-user directory
cd frontend-user
  1. Install dependencies
npm install
  1. Create a .env file with:
VITE_BACKEND_URL=http://localhost:5000
  1. Start the development server
npm run dev

Creating an Admin User

To create an initial admin user:

node temp_create_admin.js

This will create an admin user with:

Note: For security purposes, change the admin password after the first login.

Authentication

The application supports:

  • Local authentication with email/password
  • Google OAuth login
  • Role-based access (admin/user)

About

QuizVerse: A web application for creating, sharing, and participating in quizzes. Features include robust authentication (local and Google OAuth), customizable user profiles, and an admin dashboard. Built using Vue.js, Node.js, Express, and MongoDB.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •