StudyHack is a web application that transforms your study materials into personalized assessments. Upload your documents or paste text to generate quizzes and flashcards, and get AI-powered explanations of the content. This project was a winner at a recent hackathon.
- Versatile Input: Supports both file uploads (PDF) and direct text input.
- Customizable Assessments: Generate quizzes or flashcards tailored to your needs.
- Question Types: Choose from multiple-choice, true/false, or open-ended questions.
- Difficulty Levels: Select from easy, medium, or hard difficulty levels.
- Variable Length: Specify the number of questions you want.
- AI-Powered Explanations: Get detailed explanations of your study material.
- Performance Feedback: Receive feedback on your quiz performance to identify areas for improvement.
- Modern and Responsive UI: A clean and intuitive user interface built with React and Tailwind CSS.
- Frontend:
- React
- Vite
- Tailwind CSS
- React Router
- Backend:
- Flask
- Python
- APIs:
- Generative AI for question generation and content explanation.
To get a local copy up and running, follow these simple steps.
- Node.js and npm
- Python and pip
- Clone the repo
git clone https://github.com/Akinwalee/StudyHack.git
- Install NPM packages
npm install
- Install Python packages
pip install -r requirements.txt
- Start the frontend development server
npm run dev
- Start the backend server
python app.py
- Provide Content:
- Drag and drop a PDF file into the designated area.
- Click "Browse File" to select a file from your computer.
- Paste your text directly into the text area.
- Generate Assessments:
- Click the "Generate Now" button.
- In the modal that appears, select the assessment format (Quiz or Flashcard), question type, difficulty, and number of questions.
- Click "Continue" to generate the assessment.
- Get Explanations:
- Click the "Explain" button to get an AI-powered explanation of the content.
- Support for more file formats: Add support for
.docx,.pptx, and other common file formats. - User Accounts: Allow users to create accounts to save their assessments and track their progress over time.
- Spaced Repetition: Implement a spaced repetition system for flashcards to optimize learning.
- Collaborative Learning: Allow users to share their assessments with others.