An advanced educational platform that transforms lecture materials into summarized content and interactive quizzes using AI. Built with React, TypeScript, and AWS Amplify Gen 2.
This platform automatically processes educational content from documents (PDFs, PowerPoints), generates concise summaries, identifies key concepts, and creates assessment quizzes - all using AI. It features an administrative review process, secure authentication, and an intuitive user interface for both educators and students.
- Intelligent Document Processing: Extract text and context from PDF and PowerPoint files
- AI-Powered Summarization: Generate concise, educational summaries from lecture materials
- Automated Quiz Generation: Create multiple-choice questions with answers and explanations
- Administrative Workflow: Review, approve, and manage educational content
- Responsive Interface: Access content across desktop and mobile devices
- Secure Authentication: Role-based access for students and administrators
- Frontend: React, TypeScript, Vite, AWS Amplify UI Components
- Backend: AWS Amplify Gen 2, AWS Lambda, DynamoDB
- AI/ML: Google Gemini AI for content summarization and quiz generation
- Infrastructure: Serverless architecture with AWS services
- Authentication: AWS Cognito with role-based permissions
- File Storage: Amazon S3 with secure access controls
- Node.js and npm: Install Node.js (v18 or newer) from nodejs.org
- AWS Account: Create a free AWS account at aws.amazon.com
- Google API Key: Obtain a Google Gemini API key from Google AI Studio
- Git: Install Git from git-scm.com
git clone <https://github.com/PeretzNiro/study-summarization-quiz.git>
cd study-summarization-quiz
npm install
npm install -g @aws-amplify/cli
amplify init
During initialization:
- Choose a name for your environment (e.g.,
dev) - Select your preferred editor
- Choose "AWS access keys" for authentication
- Enter your AWS access key and secret key
- Select your region
- Create a secrets file in your AWS account:
aws secretsmanager create-secret --name Gemini-API-Key --secret-string "{\\"GEMINI_API_KEY\\":\\"your-gemini-api-key\\"}"
- Update the
backend.tsfile to ensure Lambda functions can access the secret:
amplify update function
Select summarization and quizGenerator functions and add permissions to access the secret.
amplify push
This will create all necessary AWS resources (DynamoDB tables, Lambda functions, S3 buckets, etc.)
- Navigate to the AWS Cognito console
- Find your user pool (created by Amplify)
- Add a new user with admin privileges:
- Username/email: your preferred email
- Add to group:
Admins
npm run dev
The application should now be running on http://localhost:5173/
- Login with the admin user credentials
- Upload a Document:
- Click "Upload" in the navigation
- Choose a PDF or PowerPoint lecture
- Wait for processing to complete
- Review Document:
- Go to Admin panel
- Check the "Pending Uploads" tab
- Review and approve the document
- View Summarized Content:
- After approval, the document will be processed
- View the summary in the "Lectures" section
- Take a Quiz:
- After processing, quizzes will be available
- Test the quiz functionality
- PDF Processing Errors:
- Ensure the PDF isn't encrypted or password-protected
- API Limit Errors:
- If you hit Gemini API rate limits, wait a few minutes before trying again
- Permission Errors:
- Make sure your AWS account has permissions to create all the required resources
- Check if the Lambda functions have the correct IAM roles to access the Secrets Manager
- Library Issues:
-
If the PDF parser fails, the fix-pdf-parse.cjs script might need to be run:
node fix-pdf-parse.cjs
-
When you're done testing, you can remove all AWS resources:
amplify delete
This will delete all cloud resources associated with the project.
- Admin uploads educational materials (PDF or PowerPoint)
- System processes documents and places them in review queue
- Admin reviews and approves the processed content
- AI generates summaries and quizzes from approved content
- Students access the materials and complete quizzes
- Progress tracking monitors student engagement and performance
Contributions are welcome! Please read our Contributing Guidelines for details on our code of conduct and the process for submitting pull requests.
See CONTRIBUTING for more information.
This library is licensed under the MIT License.