A modern Flask-based homework submission and management system supporting student uploads, teacher management, submission tracking, and detailed statistical analysis. The system features responsive design, a desktop client, and online updates, ensuring an excellent user experience across all devices.
- 🔒 Secure user authentication with separate student/admin logins
- 📧 Email verification registration and password recovery
- 📤 Drag-and-drop file uploads with progress indication
- 📋 Detailed submission statistics and filtering
- 📱 Responsive design for mobile and desktop
- 🖥️ Desktop client with auto-update functionality
- 📨 Automatic email notifications upon submission
- 🛠️ Advanced file restriction options with customizable file types and sizes
- User registration and login (email verification)
- File upload and management
- Personal submission history viewing
- Profile management
- Course and assignment configuration
- Student submission statistics
- Batch download of student submissions
- Export submission statistics (Excel format)
-
Clone the repository
git clone https://github.com/FrankLightcone/StarVortex.git cd StarVortex
-
Install dependencies
pip install -r requirements.txt
-
Configure email service
- Edit the
util/email_config.py
file with valid SMTP server information
- Edit the
-
Start the application
python main.py
-
Access the following links
- Student interface: http://localhost:10086/
- Admin interface: http://localhost:10086/admin
- Download the latest version from the releases page
- Install and launch the application
- Enter the server address to connect
HomeworkHub/
├── main.py # Main application entry
├── requirements.txt # Dependency list
├── static/ # Static files directory
│ ├── css/ # Style files
│ ├── js/ # JavaScript files
│ ├── img/ # Image resources
│ └── upload/ # Upload storage directory
├── templates/ # HTML templates directory
├── util/ # Utility modules directory
│ ├── admin.py # Admin functionality module
│ ├── api.py # API interface module
│ ├── auth.py # Authentication module
│ ├── models.py # Data model module
│ ├── student.py # Student functionality module
│ └── utils.py # Common utility functions
└── desktop/ # Desktop client source code
![]() |
![]() |
![]() |
![]() |
Parameter | Description | Default Value |
---|---|---|
UPLOAD_FOLDER | File upload directory | static/upload |
MAX_CONTENT_LENGTH | Maximum file size limit | 256MB |
SMTP_SERVER | Email server address | smtp.example.com |
SMTP_PORT | Email server port | 587 |
ADMIN_USERNAME | Admin username | admin |
The system provides rich configuration options that can be customized according to actual requirements:
- Course configuration: Edit the
course_config.json
file - Assignment advanced restrictions: Set through the admin interface
- Email templates: Modify the
util/email_templates.py
file
Backend
- Python + Flask
- Flask-Login (user authentication)
- Werkzeug (security components)
Frontend
- HTML5 + CSS3
- TailwindCSS
- JavaScript (vanilla)
Desktop Client
- Electron
- Node.js
Issues and pull requests are welcome!