DrawExplain is an innovative educational platform designed to transform the way students learn and practice mathematics. By leveraging cutting-edge AI technology, our platform provides instant, personalized feedback on handwritten math solutions, helping students improve their problem-solving skills and mathematical understanding.
🔗 Live Demo: drawexplain.com
- 🖊️ Interactive canvas for handwritten solutions
- 🎙️ Audio recording for verbal explanations
- 🤖 AI-powered grading and feedback
- 📊 Progress tracking and analytics
- 📚 Comprehensive question bank
- 👥 User authentication and personalized experience
Our application uses the following main data models:
_id: Unique identifierusername: User's chosen usernameemail: User's email addresspassword: Hashed passwordcreatedAt: Timestamp of account creationupdatedAt: Timestamp of last account update
_id: Unique identifierindex: Question number/indexquestion: The LaTeX formatted question textanswer: The correct answertopic: The mathematical topic of the questionai_solution: AI-generated solution for comparison
_id: Unique identifieruserId: Reference to the User modelquestionId: Reference to the Question modelimageUrl: URL of the submitted canvas imageaudioUrl: URL of the submitted audio explanation (if any)feedback: AI-generated feedbackscore: Numerical score assigned by AIcreatedAt: Timestamp of submission
- Node.js (v14 or later)
- MongoDB
- Google Cloud Storage account (for file storage)
-
Clone the repository: git clone [https://github.com/your-username/ai-grader.git] cd ai_grader_deployed
-
Install dependencies: npm install
-
Set up environment variables: Create a
.envfile in the root directory and add: MONGODB_URI=your_mongodb_connection_string GCS_BUCKET_NAME=your_gcs_bucket_name GCS_PROJECT_ID=your_gcs_project_id GCS_CLIENT_EMAIL=your_gcs_client_email GCS_PRIVATE_KEY=your_gcs_private_key -
Start the development server: npm run dev
- 📝 Sign up for an account on drawexplain.com
- 🏋️♀️ Navigate to the Practice page
- 📱 Ensure you have an iPad or equivalent device for on-screen writing
- 🎙️ Click the "Start Recording" button
- ✍️ Begin explaining your solution verbally while writing on the canvas
- 🛑 When finished, click "Stop Recording"
- 📤 Click the "Submit" button to send your solution for grading
- ⏳ Wait a few seconds for the AI to process your submission
- 📊 Review your personalized feedback and improve your skills!
We welcome contributions to DrawExplain! Please see our CONTRIBUTING.md file for details on how to get involved.
This project is licensed under the MIT License - see the LICENSE.md file for details.
- Thanks to all the educators and students who provided valuable feedback during our development process.
- Shoutout to the amazing open-source community for the tools and libraries that made this project possible.
For any questions or support, please email us at sa6097@nyu.edu or open an issue in this repository.
Happy learning! 🚀📚