A full-stack application for creating and taking test exams, built with Next.js, NestJS, and Prisma.
- User authentication and authorization
- Multiple question types (Multiple Choice, True/False, Short Answer, Essay)
- Test creation and management
- Test attempts tracking
- Subscription-based access
- Community features (comments)
- Detailed analytics
- Frontend: Next.js 14, TypeScript, Tailwind CSS
- Backend: NestJS, TypeScript
- Database: MongoDB with Prisma ORM
- Authentication: JWT (to be implemented)
- Node.js (v18 or higher)
- MongoDB
- npm or yarn
- Clone the repository:
git clone https://github.com/yourusername/prep4data.git
cd prep4data- Install dependencies:
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm install-
Set up environment variables:
- Create a
.envfile in the backend directory with:
DATABASE_URL="mongodb://localhost:27017/prep4data" - Create a
-
Start the development servers:
# Start backend server (from backend directory)
npm run start:dev
# Start frontend server (from frontend directory)
npm run devThe application will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:3001
prep4data/
├── backend/ # NestJS backend
│ ├── prisma/ # Prisma schema and migrations
│ └── src/ # Source code
│ ├── items/ # Items module
│ └── prisma/ # Prisma service
├── frontend/ # Next.js frontend
│ └── src/
│ └── app/ # Next.js app directory
└── README.md
The application uses MongoDB with the following main models:
- User
- Question
- Test
- TestAttempt
- Subscription
- Comment
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.