An online test platform that allows teachers to create tests, add questions, and manage students. Students can attempt tests, view results, and track their performance.
- Create Tests: Add new tests with titles, descriptions, and other details.
- Add Questions: Add multiple choice, single choice, or paragraph type questions to tests.
- Manage Tests: View, edit, or delete tests and their questions.
- View Results: Analyze student performance with detailed results and graphs.
- Attempt Tests: Take tests within a specified time limit.
- View Results: See detailed results of attempted tests with accuracy and performance metrics.
- Profile Management: Manage personal information and profile picture.
- Frontend: React.js, CSS (Bootstrap)
- Backend: Firebase (Firestore, Auth, Storage)
- Routing: React Router
-
Clone the repository:
git clone https://github.com/yourusername/online-test-platform.git cd online-test-platform -
Install dependencies:
npm install
-
Set up Firebase:
- Create a Firebase project on Firebase Console.
- Add your Firebase config to
src/firebaseConfig.js:
// src/firebaseConfig.js import { initializeApp } from "firebase/app"; import { getFirestore } from "firebase/firestore"; import { getAuth } from "firebase/auth"; import { getStorage } from "firebase/storage"; const firebaseConfig = { apiKey: "YOUR_API_KEY", authDomain: "YOUR_AUTH_DOMAIN", projectId: "YOUR_PROJECT_ID", storageBucket: "YOUR_STORAGE_BUCKET", messagingSenderId: "YOUR_MESSAGING_SENDER_ID", appId: "YOUR_APP_ID" }; const app = initializeApp(firebaseConfig); const db = getFirestore(app); const auth = getAuth(app); const storage = getStorage(app); export { db, auth, storage };
-
Run the application:
npm start
-
Open in your browser:
Navigate to
http://localhost:3000
online-test-platform/
│
├── public/
│ ├── index.html
│ └── ...
│
├── src/
│ ├── components/
│ │ ├── AttemptTest.jsx
│ │ ├── CreateQuestion.jsx
│ │ ├── CreateTest.jsx
│ │ ├── Dashboard.jsx
│ │ ├── Login.jsx
│ │ ├── Profile.jsx
│ │ ├── Register.jsx
│ │ ├── Result.jsx
│ │ ├── StudentDashboard.jsx
│ │ ├── TeacherDashboard.jsx
│ │ ├── TeacherLayout.jsx
│ │ └── ...
│ │
│ ├── firebaseConfig.js
│ ├── main.js
│ ├── App.js
│ └── index.css
│
├── .gitignore
├── package.json
└── README.md
- Name: Harsh Bhatt
- Email: [email protected]
- LinkedIn: https://www.linkedin.com/in/harsh-bhatt-114a2a293/
- GitHub: https://github.com/Harsh-BH