Transform your study materials into powerful learning tools with AI assistance
StudySpark is a comprehensive educational platform that leverages artificial intelligence to help students learn more effectively. Upload your documents, lectures, or course materials, and let our AI tools create summaries, flashcards, quizzes, study plans, and more.
- Secure JWT Authentication - Token-based authentication with role-based access control
- User Roles - Admin and Student role management
- Session Management - Persistent user sessions with automatic token refresh
- Multi-Format Upload - Support for PDF, TXT, audio (MP3, WAV), and video (MP4) files
- Drag & Drop Interface - Easy file uploads with visual feedback
- Document Library - Organized storage with search and filtering capabilities
- Word Count Analysis - Automatic document analysis and metadata extraction
- Generate summaries in three levels: Short, Medium, and Detailed
- Extract key points automatically
- Save and manage multiple summaries per document
- Automatically create question-answer flashcards from your documents
- Interactive flip animation for studying
- Export and share flashcard sets
- Generate multiple-choice quizzes based on your content
- Automatic grading and scoring
- Review correct answers after completion
- Ask questions about your uploaded documents
- Powered by Retrieval-Augmented Generation (RAG)
- Context-aware responses with web search integration
- Focus on specific documents or query across all materials
- Personalized study schedules based on your materials
- Milestone tracking and progress monitoring
- Adaptive planning based on your learning pace
- Visual concept mapping from document content
- Hierarchical organization of topics
- Interactive and exportable diagrams
- Convert audio/video lectures to text
- Automatic formatting and structuring
- Searchable transcripts
- Generate images and diagrams for complex topics
- Visual learning aids for better comprehension
-
Free Tier - $0/forever
- 10 Summaries
- 20 Flashcards
- 5 Quizzes
- 50 Chat Messages
- 2 Study Plans
- 5 Max Uploads
-
Pro Tier - $9.99/week
- 100 Summaries
- 200 Flashcards
- 50 Quizzes
- 500 Chat Messages
- 20 Study Plans
- 50 Max Uploads
-
VIP Tier - $29.99/week
- 1000 Summaries
- 2000 Flashcards
- 500 Quizzes
- 10,000 Chat Messages
- 100 Study Plans
- 500 Max Uploads
- Real-time quota tracking for all AI features
- Visual quota cards on dashboard
- Low quota warnings (< 5 remaining)
- Quota exhaustion prevention with upgrade prompts
- Automatic quota reset based on subscription cycle
- Framework: Angular 18+ (Standalone Components)
- Language: TypeScript
- Styling: SCSS with custom design system
- Animations: GSAP (GreenSock)
- UI Components: Bootstrap Icons
- HTTP Client: Angular HttpClient with RxJS Observables
- Alerts: SweetAlert2
- Runtime: Node.js (v20.17.0+)
- Framework: Express.js
- Language: JavaScript (ES6+)
- Database: MySQL with Sequelize ORM
- Authentication: JSON Web Tokens (JWT)
- Password Security: bcryptjs
- Environment Management: dotenv
- CORS: cors middleware
- Users: Authentication and profile management
- Quotas: Usage tracking and limits
- Subscriptions: Tier management and billing
- Documents: File storage and metadata
- Summaries: Generated summaries storage
- Flashcards: Flashcard sets and cards
- Quizzes: Quiz questions and answers
- ChatMessages: Conversation history
- StudyPlans: Personalized study schedules
- MindMaps: Visual concept maps
StudySpark/
βββ studyspark-frontend/ # Angular Frontend Application
β βββ src/
β β βββ app/
β β β βββ components/ # Reusable UI components
β β β β βββ sidebar/ # Navigation sidebar
β β β β βββ quota-card/ # Quota display cards
β β β βββ pages/ # Route components
β β β β βββ auth/ # Login, Register, Logout
β β β β βββ admin/ # Admin dashboard
β β β β βββ student/ # Student features
β β β β βββ student-dashboard/
β β β β βββ subscription/
β β β β βββ upload/
β β β β βββ summarizer/
β β β β βββ chatbot/
β β β β βββ flashcards/
β β β β βββ quiz/
β β β β βββ study-plan/
β β β β βββ mind-map/
β β β β βββ transcribe/
β β β β βββ visualize/
β β β βββ services/ # API services
β β β β βββ auth.service.ts
β β β β βββ quota.service.ts
β β β β βββ subscription.service.ts
β β β β βββ document.service.ts
β β β β βββ summary.service.ts
β β β β βββ session.service.ts
β β β β βββ user.service.ts
β β β βββ guards/ # Route guards
β β β β βββ auth.guard.ts
β β β βββ modules/ # TypeScript interfaces
β β β βββ app.routes.ts # Route configuration
β β βββ styles.scss # Global styles
β βββ angular.json
β βββ package.json
β βββ tsconfig.json
β
βββ studyspark-backend/ # Express Backend API
β βββ src/
β β βββ config/
β β β βββ db.js # Database connection
β β βββ models/ # Sequelize models
β β β βββ userModel.js
β β β βββ Quota.js
β β β βββ Document.js
β β β βββ Summary.js
β β β βββ Flashcard.js
β β β βββ Quiz.js
β β β βββ ChatMessage.js
β β β βββ StudyPlan.js
β β β βββ MindMap.js
β β βββ controllers/ # Business logic
β β β βββ authController.js
β β β βββ userController.js
β β β βββ quotaController.js
β β β βββ subscriptionController.js
β β β βββ documentController.js
β β β βββ summaryController.js
β β β βββ flashcardController.js
β β β βββ quizController.js
β β β βββ chatController.js
β β β βββ studyPlanController.js
β β β βββ mindMapController.js
β β βββ routes/ # API endpoints
β β β βββ authRoutes.js
β β β βββ userRoutes.js
β β β βββ quotaRoutes.js
β β β βββ subscriptionRoutes.js
β β β βββ documentRoutes.js
β β β βββ summaryRoutes.js
β β β βββ flashcardRoutes.js
β β β βββ quizRoutes.js
β β β βββ chatRoutes.js
β β β βββ studyPlanRoutes.js
β β β βββ mindMapRoutes.js
β β βββ middleware/
β β β βββ authMiddleware.js # JWT verification
β β βββ server.js # App entry point
β βββ package.json
β βββ .env # Environment variables
β
βββ README.md # This file
- Node.js: v20.17.0 or higher
- npm: v9.0.0 or higher
- MySQL: v8.0 or higher
- Git: Latest version
git clone https://github.com/yourusername/StudySpark.git
cd StudySpark# Navigate to backend directory
cd studyspark-backend
# Install dependencies
npm install
# Create .env file
cp .env.example .env
# Configure your environment variables
nano .envEnvironment Variables (.env):
PORT=5000
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=studyspark
JWT_SECRET=your_super_secret_jwt_key_here_change_this_in_production
JWT_EXPIRE=7d
NODE_ENV=developmentCreate MySQL Database:
CREATE DATABASE studyspark;
USE studyspark;# Start the backend server
npm start
# For development with auto-reload
npm run devBackend will run on http://localhost:5000
# Navigate to frontend directory (from project root)
cd studyspark-frontend
# Install dependencies
npm install
# Start the development server
npm startFrontend will run on http://localhost:4200
- The database tables will be created automatically on first run (Sequelize sync)
- Navigate to
http://localhost:4200/registerto create your first account - New users start with the Free Tier subscription by default
- Upload documents and start using AI tools!
POST /api/auth/register- Create new user accountPOST /api/auth/login- User loginGET /api/auth/me- Get current user info
GET /api/users/profile- Get user profilePUT /api/users/profile- Update user profileGET /api/users- Get all users (Admin only)
GET /api/quotas/my-quota- Get current user's quotaPUT /api/quotas/decrement- Decrement specific quotaPOST /api/quotas/reset/:userId- Reset user quota (Admin)
GET /api/subscriptions/plans- Get all subscription plansGET /api/subscriptions/my-subscription- Get current subscriptionPOST /api/subscriptions/subscribe- Subscribe to a planPOST /api/subscriptions/cancel- Cancel current subscriptionPOST /api/subscriptions/check-expired- Check and update expired subscriptions
GET /api/documents- Get all user documentsGET /api/documents/:id- Get specific documentPOST /api/documents/upload- Upload new documentDELETE /api/documents/:id- Delete document
-
POST /api/summaries/generate- Generate document summary -
GET /api/summaries/document/:docId- Get document summaries -
DELETE /api/summaries/:id- Delete summary -
POST /api/flashcards/generate- Generate flashcards -
GET /api/flashcards/document/:docId- Get flashcard sets -
DELETE /api/flashcards/:id- Delete flashcard set -
POST /api/quizzes/generate- Generate quiz -
GET /api/quizzes/document/:docId- Get quizzes -
POST /api/quizzes/:id/submit- Submit quiz answers -
DELETE /api/quizzes/:id- Delete quiz -
POST /api/chat/message- Send chat message -
GET /api/chat/history/:docId- Get chat history -
DELETE /api/chat/history/:docId- Clear chat history
All protected endpoints require JWT token in Authorization header:
Authorization: Bearer <your_jwt_token>
- Primary:
#3b82f6(Blue) - Secondary:
#8b5cf6(Purple) - Success:
#10b981(Green) - Warning:
#f59e0b(Orange) - Danger:
#ef4444(Red) - Dark:
#1e293b(Slate) - Light:
#f8f9fc(Off-white)
- Font Family: System fonts (SF Pro, Segoe UI, Roboto)
- Headings: Bold weights (600-700)
- Body: Regular weight (400)
- Code: Monospace font
- Cards: Rounded corners (12px), subtle shadows
- Buttons: Gradient backgrounds with hover effects
- Inputs: Clean borders with focus states
- Modals: Centered with backdrop blur
cd studyspark-frontend
npm testcd studyspark-backend
npm testcd studyspark-frontend
npm run buildBuild artifacts will be in dist/ directory.
cd studyspark-backend
# Set NODE_ENV=production in .env
npm start- JWT Authentication - Secure token-based authentication
- Password Hashing - bcrypt with salt rounds
- CORS Protection - Configured CORS policies
- SQL Injection Prevention - Sequelize ORM parameterized queries
- XSS Protection - Angular's built-in sanitization
- Role-Based Access - Admin and student role separation
- Route Guards - Protected routes with auth guards
- AI Models: Currently using mock responses. Real AI integration pending.
- File Storage: Files stored locally. Cloud storage (AWS S3) integration planned.
- Payment Gateway: Subscription system ready, payment integration pending.
- Real-time Features: WebSocket for live chat/collaboration planned.
- Mobile App: Native mobile apps (iOS/Android) in roadmap.
- OpenAI GPT-4 integration for all AI tools
- AWS S3 integration for document storage
- Stripe payment gateway integration
- Email notifications and verification
- Password reset functionality
- Real-time collaboration features
- Export functionality (PDF, DOCX)
- Mobile-responsive design improvements
- Advanced analytics dashboard
- Team/classroom features
- Native mobile apps (iOS/Android)
- Offline mode support
- Voice input for chat
- Multi-language support
- API for third-party integrations
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow Angular style guide for frontend
- Use ESLint configuration for backend
- Write meaningful commit messages
- Add comments for complex logic
This project is licensed under the MIT License - see the LICENSE file for details.
- Your Name - Initial work - YourGitHub
- OpenAI for GPT models inspiration
- Angular team for the amazing framework
- Express.js community for backend tools
- All open-source contributors
For support, email support@studyspark.com or join our Slack channel.
Current Version: v1.0.0 (Beta) Status: Active Development Last Updated: October 2025
Made with β€οΈ by the StudySpark Team