AcademicInsights is a Chrome web extension paired with a backend that enables researchers to analyze students' online academic behavior. This tool uses web scraping, machine learning (ML), and natural language processing (NLP) to provide insights into learning styles, resource usage, and topic relevance.
This project serves as a customizable template for edtech researchers, facilitating studies on how students utilize online resources for learning and how their behavior correlates with academic success.
- Web Scraping: Extracts and analyzes visited website content.
- Learning Style Identification: Classifies behavior into Visual, Auditory, Reading/Writing, or Kinesthetic styles.
- Topic Categorization: Matches content to admin-defined academic topics.
- Google Sign-In: Authenticates users securely.
- Backend Integration: Provides a robust backend API for data processing and storage.
- Customizable: Designed for easy adaptation to specific research needs.
backend/
├── app/
│ ├── scraping/ # Web scraping and analysis
│ │ ├── scraper.py # Scrapes website data
│ │ ├── nlp_analysis.py # NLP for topic categorization
│ │ ├── ml_models.py # ML models for learning styles
│ ├── __init__.py # Initializes Flask app
│ ├── routes.py # API routes
│ ├── models.py # Data models for backend (optional)
├── app.py # Entry point for the backend
├── config.py # Configuration for Firebase and other settings
├── firebase-admin-key.json # Firebase Admin SDK credentials
├── Dockerfile # Docker container configuration
├── requirements.txt # Backend dependencies
frontend/
├── icons/ # Extension icons
│ ├── icon16.jpg
│ ├── icon48.jpg
│ ├── icon128.jpg
├── background.js # Background script for the extension
├── firebase-config.js # Firebase configuration for frontend
├── manifest.json # Chrome extension configuration
├── popup.html # HTML for the extension's popup UI
├── popup.js # Frontend logic for the popup
├── styles.css # CSS for the popup
- Python 3.9+
- Node.js (optional for additional tools)
- Chrome Browser
- Docker (for backend deployment)
- Firebase Project for Authentication
- Navigate to the
backend/
directory:cd backend
- Create a virtual environment and activate it:
python3 -m venv venv source venv/bin/activate
- Install dependencies:
pip install -r requirements.txt
- Run the backend:
The backend will be available at
python app.py
http://localhost:5000
.
- Build the Docker image:
docker build -t academic-insights-backend .
- Run the Docker container:
docker run -p 5000:5000 academic-insights-backend
- API Endpoints:
app/routes.py
- Web Scraping Logic:
app/scraping/scraper.py
- NLP Analysis:
app/scraping/nlp_analysis.py
- Learning Style ML Models:
app/scraping/ml_models.py
- Open Chrome and navigate to
chrome://extensions/
. - Enable Developer Mode.
- Click Load unpacked and select the
frontend/
folder.
- Extension Configuration:
frontend/manifest.json
- Popup Logic:
frontend/popup.js
- Firebase Configuration:
frontend/firebase-config.js
- Create a Firebase project at Firebase Console.
- Enable Google Authentication under
Authentication > Sign-in method
. - Download the Admin SDK JSON key and place it in
backend/firebase-admin-key.json
. - Add Firebase configuration to
frontend/firebase-config.js
:export const firebaseConfig = { apiKey: "YOUR_API_KEY", authDomain: "YOUR_AUTH_DOMAIN", projectId: "YOUR_PROJECT_ID", storageBucket: "YOUR_STORAGE_BUCKET", messagingSenderId: "YOUR_MESSAGING_SENDER_ID", appId: "YOUR_APP_ID", };
For more detailed deployment instructions with more details about how to setup using various Backend hosting services, please for here
- Deploy the backend using Heroku, AWS, or Google Cloud Run.
- Update
frontend/popup.js
with the deployed backend URL:const BASE_URL = "https://your-backend-url.com";
- Package the extension:
- Zip the
frontend/
folder.
- Zip the
- Submit to the Chrome Web Store Developer Dashboard.
- Google Sign-In:
- Authenticate using a Google account.
- Track Web Activity:
- Visit websites and let the extension scrape content.
- Analyze Insights:
- View learning styles and topic categorization in the extension popup.
-
Add New Topics:
- Edit
app/scraping/nlp_analysis.py
to include new topics and keywords.
- Edit
-
Modify Learning Style Models:
- Update or retrain models in
app/scraping/ml_models.py
for different user behavior datasets.
- Update or retrain models in
-
Extension UI Customization:
- Edit
frontend/popup.html
andfrontend/styles.css
.
- Edit
- Data Access:
- Use the
/dashboard/<user_id>
endpoint inbackend/app/routes.py
to retrieve user data.
- Use the
- Documentation:
- Refer to
backendinstructions.md
for backend setup andsetupLocal.md
orsetupHosted.md
for deployment.
- Refer to
- Add more advanced NLP models (e.g., GPT-based summarization).
- Enable real-time monitoring with WebSockets.
- Add more robust privacy features for anonymizing user data.
For issues, please contact me or open an issue on the project repository! Thanks!