Exam-Manager is a powerful platform designed for educators to efficiently create, view, and manage exams and questions. Built with modern technologies like Next.js, Prisma, and Tailwind CSS, this platform simplifies exam administration and offers a user-friendly interface for dynamic management of educational content.
- User Roles: Support for various user roles, such as Admin, Teacher, and Student, allowing for customized access and permissions.
- Exam Management: Create, update, view, and delete exams seamlessly.
- Question Bank: Manage a library of questions with different types (multiple choice, true/false, etc.).
- Dynamic Pagination: Efficient navigation and management of large sets of questions and exams.
- Responsive Design: Fully responsive layout powered by Tailwind CSS for seamless use across devices.
- User-Friendly Interface: Simplified and intuitive UI/UX for educators and students.
- Data Persistence: All data is stored in a PostgreSQL database via Prisma ORM.
- Frontend: Next.js - A React framework for building server-side rendered and static websites.
- Backend: Node.js with Next.js API routes for managing the server-side logic.
- Database: Prisma as the ORM for interacting with a PostgreSQL database.
- Styling: Tailwind CSS for building responsive and modern UI components.
- Authentication: NextAuth.js for handling user authentication and session management.
- Deployment: The app can be deployed on platforms like Vercel or Heroku.
- Node.js (v14+)
- PostgreSQL (or any other supported database)
-
Clone the repository:
git clone https://github.com/your-username/exam-manager.git
-
Install dependencies:
cd exam-manager npm install
-
Set up environment variables:
Create a
.env
file in the root directory and fill in the following:DATABASE_URL=postgresql://username:password@localhost:5432/exam_manager NEXTAUTH_SECRET=your_secret NEXTAUTH_URL=http://localhost:3000
-
Run database migrations:
npx prisma migrate dev
-
Start the development server:
npm run dev
The app will be running on http://localhost:3000.
To easily manage and inspect the database, use Prisma Studio:
npx prisma studio
- Admin Role: Create and manage exams, questions, and user roles.
- Teacher Role: Access to exam creation and question management.
- Student Role: Ability to view exams and submit answers.
To deploy the application, you'll need to configure the environment variables in the target environment (e.g., Vercel, Heroku) and set up a database.
-
Deploy on Vercel:
- Push the code to GitHub and connect your repository with Vercel.
- Add the environment variables in the Vercel dashboard.
- Click on Deploy.
-
Database Setup:
Ensure that your database URL is correctly set up in the production environment, and that Prisma migrations are applied.
npx prisma migrate deploy
Contributions are welcome! Please open an issue or submit a pull request for any bugs or feature requests.
This project is licensed under the MIT License - see the LICENSE file for details.