https://github.com/abbilaash/snapclass
AI-powered offline classroom assistant for under-resourced schools. Real-time speech-to-text, textbook parsing, quiz generation, and analytics—all on-device, no internet required. Empowers teachers with personalized insights and students with interactive learning via local WiFi access point.
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.2%) to scientific vocabulary
Repository
AI-powered offline classroom assistant for under-resourced schools. Real-time speech-to-text, textbook parsing, quiz generation, and analytics—all on-device, no internet required. Empowers teachers with personalized insights and students with interactive learning via local WiFi access point.
Basic Info
- Host: GitHub
- Owner: Abbilaash
- License: mit
- Language: Python
- Default Branch: main
- Size: 16.9 MB
Statistics
- Stars: 1
- Watchers: 0
- Forks: 1
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
SnapClass
SnapClass is an advanced on-device edge AI solution designed for low-connectivity, high-density classroom environments. Powered by Snapdragon’s Hexagon NPU, it runs open-source large language models (LLMs), image captioning, and audio transcription entirely offline. SnapClass automates personalized learning by transcribing lectures, analyzing textbook content, and generating adaptive quizzes—bridging educational gaps in underserved regions where internet access and qualified educators are limited.
App architecture
Models
- Whisper-small (242M params) via "openai/whisper-small"
- nougat-small (247M params) via "facebook/nougat-small"
- blip-image-captioning-base via "Salesforce/blip-image-captioning-base" running parallelly with whisper-small
- Phi-3.5-mini-instruct (3.82B params) via "AnythingLLM" running locally via ONNX accelerated by Snapdragon's X Elite's NPU
Features
- 🖼Teacher dashboard with file upload and analytics view
- Lecture and textbook PDF/audio upload
- AI-based question and answer evaluation
- Uses Both CPU and NPU for faster on-device processing
- Identifies weak syllabus topics per student or group
- Fully functional offline – no internet needed
- Lightweight and fast inference using sentence embeddings
Setup & Usage
Step 1: Setup Local Hotspot (No Internet)
We use MyPublicWifi to create a local area dead network 1. Download and Install MyPublicWifi. 2. Open the app, set: - Network Access = No Internet Sharing - Turn on hotspot 3. Note the IP address shown in the app. This IP will be used to access the server from other devices.
Step 2:Install Python Dependencies
- Clone this repository
git clone https://github.com/Abbilaash/SnapClass.git cd SnapClass - Install requirements
pip install -r requirements.txtInstall AnythingLLM and activate AnythingLLM NPU to process LLM models in Qualcomm Hexagon NPU. DownloadPhi 3.5 Mini Instruct 4K 2.00GBmodel. Get you AnythingLLM Developer API from Settings>Tools>Developer API>Generate New API Key and get you workspace slug. Replace you API key inserver/config.yamlasapi_key: <API>andworkspace_slug: <my-workspace>
Step 3: Start the server
cd server
python app.py
Once started, the server runs locally on port 5000
Access the Web Interface
- Teacher Dashboard (same server device)
http://127.0.0.1:5000/adminUse the IP address shown in MyPublicWifi ad access the students portal - Student Test Page
http://<IP>:5000/testReplacewith the one shown in the MyPublicWifi app after enabling the hotspot
Screenshots
Authors
A T Abbilaash - 23n201@psgtech.ac.in
Nivashini N - 23n234@psgtech.ac.in
Owner
- Login: Abbilaash
- Kind: user
- Repositories: 1
- Profile: https://github.com/Abbilaash
GitHub Events
Total
- Watch event: 1
- Push event: 8
- Pull request event: 1
- Fork event: 1
Last Year
- Watch event: 1
- Push event: 8
- Pull request event: 1
- Fork event: 1