This is a simple online coding examination platform built with Next.js, Firebase, and Judge0.
- User Authentication: Google Sign-in for all users (Students, Faculty, Admin).
- Role-Based Access Control:
- Superuser Admin: Assigns roles to users.
- Faculty: Creates and manages coding problems and test cases.
- Student: Solves and submits coding problems.
- Code Execution: Uses the Judge0 API to execute code and provide results.
- Real-time Database: Firestore for storing user data, problems, and submissions.
.
├── docs/ # Project documentation
├── public/ # Public assets
├── src/
│ ├── app/
│ │ ├── api/ # API routes
│ │ └── (pages)/ # Next.js pages
│ ├── components/ # React components
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Firebase config and other utilities
│ ├── store/ # State management
│ └── types/ # TypeScript types
├── .env.local.example # Example environment variables
├── next.config.ts
├── package.json
└── tsconfig.json
-
Clone the repository:
git clone <repository-url>
-
Install dependencies:
npm install
-
Set up environment variables:
- Copy
.env.local.exampleto.env.local. - Fill in the required Firebase and Judge0 API credentials.
- Copy
-
Run the development server:
npm run dev
Open http://localhost:3000 with your browser to see the result.