SmartPrep is an AI-powered virtual teacher platform designed to revolutionize education. It converts standard textbooks into interactive daily lessons, providing a personalized learning experience through AI-generated content, quizzes, and a virtual assistant along with IOE/IOM entrance preparation.
- AI Content Generation: Automatically converts textbook PDFs into structured lessons and summaries.
- Interactive Quizzes (MCQ): Generates multiple-choice questions to test understanding, complete with distractors.
- AI Chatbot: A virtual assistant to answer student queries in real-time.
- Performance Tracking: Visualizes student progress and performance over time.
- Note Summarizer: Summarizes comprehensive notes for quick revision.
- Mock Tests: Simulates exam conditions for better preparation for IOE/IOM entrance.
- Community Features: Connects students for collaborative learning.
- Framework: Next.js (React)
- Styling: Tailwind CSS
- Framework: FastAPI (Python)
- Database and Storage: MongoDB and Cloudinary
- AI/ML: LangChain, OpenAI
- Docker and Docker Compose
- Node.js (v18+)
- Python (v3.9+)
- MongoDB (if running locally without Docker)
-
Clone the repository
git clone https://github.com/yourusername/SmartEd.git cd SmartEd -
Environment Setup Create a
.envfile in theserverdirectory and a.envfile in theclientdirectory.
The easiest way to run the application is using Docker Compose.
-
Build and Run
cd server docker-compose up --buildThis will start the backend server and MongoDB database.
-
Run Frontend Open a new terminal configuration for the client:
cd client npm install npm run dev
-
Navigate to the server directory:
cd server -
Create a virtual environment and activate it:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Run the server:
uvicorn main:app --reload
The API will be available at
http://localhost:8000. API Documentation (Swagger UI):http://localhost:8000/docs
-
Navigate to the client directory:
cd client -
Install dependencies:
npm install
-
Run the development server:
npm run dev
The application will be available at
http://localhost:3000.
Required environment variables for the backend:
MONGO_URI=mongodb://localhost:27017 # or mongodb://mongodb:27017 for Docker
DB_NAME=auth_db
JWT_SECRET=your_jwt_secret
JWT_ALGORITHM=HS256
ENV=development
# AI Services
GOOGLE_API_KEY=your_google_api_key
GROQ_API_KEY=your_groq_api_key
# Cloudinary (Image Uploads)
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
# Azure OpenAI (Optional/If used)
AZURE_OPENAI_API_KEY=your_azure_key
AZURE_OPENAI_ENDPOINT=your_azure_endpoint
AZURE_OPENAI_DEPLOYMENT=your_deployment_name
AZURE_OPENAI_API_VERSION=your_api_version
# Google Search (Optional)
GOOGLE_SEARCH_API_KEY=your_search_key
GOOGLE_SEARCH_ENGINE_ID=your_search_engine_idRequired environment variables for the frontend:
NEXT_PUBLIC_API_URL=http://localhost:8000/api- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request