Organize. Manage. Store. Study.
A cloud-based student productivity application for managing assignments, subjects and academic files from one centralized platform.
StudySync is a cloud-based student assignment and notes management application developed using Python and Flask. It provides a centralized workspace for students to organize subjects, manage assignments, and handle academic files.
The application uses a multi-cloud architecture combining Microsoft Azure, Amazon Web Services, and Cloudflare.
|
Assignments
Create & manage |
Files
Upload & manage |
Cloud
Multi-cloud deployment |
Monitoring
Application telemetry |
|
|
|
|
|
👤 Student
Web Browser |
→ |
☁️ Cloudflare
Worker / Reverse Proxy |
→ |
🔷 Azure
App Service / Flask |
|
🗄️ Azure MySQL
Structured application data |
🪣 AWS S3
Uploaded academic files |
📊 Application Insights
Monitoring and telemetry |
┌──────────────┐
│ Student │
│ Web Browser │
└──────┬───────┘
│ HTTPS
▼
┌──────────────────────┐
│ Cloudflare Worker │
│ Reverse Proxy / Edge │
└──────────┬───────────┘
│ HTTPS
▼
┌────────────────────────────┐
│ Azure App Service │
│ Flask / Python Application│
└───────────┬────────────────┘
│
┌────┼─────────────┐
│ │ │
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌──────────────────┐
│ Azure │ │ AWS S3 │ │ Application │
│ MySQL │ │ Storage │ │ Insights │
└─────────┘ └─────────┘ └──────────────────┘
| Service | Purpose |
|---|---|
| 🔷 Azure App Service | Hosts and runs the Flask StudySync application. |
| 🗄️ Azure Database for MySQL | Stores structured application data such as assignments and subjects. |
| 📊 Azure Application Insights | Monitors requests, errors, performance and telemetry. |
| 🪣 Amazon S3 | Provides private object storage for uploaded academic files. |
| ☁️ Cloudflare Worker | Acts as the public edge and reverse-proxy layer. |
| Layer | Technology |
|---|---|
| Programming Language | Python |
| Web Framework | Flask |
| ORM | Flask-SQLAlchemy |
| Database Driver | PyMySQL |
| Database | Azure Database for MySQL |
| File Storage | Amazon S3 |
| AWS SDK | Boto3 |
| Frontend | HTML / CSS |
| Hosting | Azure App Service |
| Monitoring | Azure Application Insights |
| Edge Layer | Cloudflare Workers |
| Version Control | Git / GitHub |
|
01
User Opens StudySync |
→ |
02
Cloudflare Receives request |
→ |
03
Azure Runs Flask app |
→ |
04
MySQL / S3 Data operations |
→ |
05
Insights Monitors app |
→ |
06
Response Returns to user |
StudySync/ │ ├── static/ │ └── style.css │ ├── templates/ │ ├── _sidebar.html │ ├── assignments.html │ ├── edit_assignment.html │ ├── files.html │ ├── index.html │ ├── settings.html │ ├── subject_assignments.html │ └── subjects.html │ ├── uploads/ ├── certs/ ├── app.py ├── README.md ├── requirements.txt ├── schema.sql ├── .gitignore └── .env
🔒 Security: Sensitive files such as .env,
database credentials, AWS credentials, certificates and uploaded files
are excluded from the Git repository.
StudySync uses Azure Database for MySQL Flexible Server for structured application data.
Flask Application
│
▼
Flask-SQLAlchemy
│
▼
PyMySQL
│
▼
Azure Database for MySQL
Uploaded files are stored in a private Amazon S3 bucket instead of relying on local application storage.
Student │ ▼ StudySync Flask App │ ▼ Boto3 / AWS SDK │ ▼ Amazon S3 │ ▼ Private Object Storage
Bucket: studysync-kuunalmistry-files
Region: ap-south-1 — Mumbai
The Cloudflare Worker acts as the public entry point for StudySync and forwards incoming requests to the Azure App Service origin.
Internet │ ▼ Cloudflare Worker │ │ HTTPS ▼ Azure App Service │ ▼ Flask Application
Azure Application Insights provides application observability and diagnostics.
|
📡
Requests |
⚡
Performance |
Errors |
📋
Telemetry |
Sensitive configuration is stored through environment variables rather than being hard-coded into the application.
DB_HOST DB_NAME DB_PORT DB_PASSWORD AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_REGION S3_BUCKET_NAME
.envis excluded from Git.- Database certificates are excluded.
- Uploaded files are excluded.
- Python cache files are excluded.
- Cloud credentials are never hard-coded into the application.
| Component | Tests Performed |
|---|---|
| Azure MySQL | Connection, table creation, assignment creation and deletion. |
| AWS S3 | Upload, download, delete and object verification. |
| Azure App Service | Deployment, startup and production access. |
| Cloudflare Worker | Request forwarding, static assets and live application access. |
| Application Insights | Requests, response times and failed-request monitoring. |
|
Worker
Edge / Reverse Proxy |
→ |
App Service
Flask Application |
→ |
Azure MySQL
AWS S3 |
git clone https://github.com/kuunalmistry/StudySync.git
cd StudySync
pip install -r requirements.txt
DB_HOST=your-database-host DB_NAME=student_manager DB_PORT=3306 DB_PASSWORD=your-password AWS_ACCESS_KEY_ID=your-access-key AWS_SECRET_ACCESS_KEY=your-secret-key AWS_REGION=ap-south-1 S3_BUCKET_NAME=studysync-kuunalmistry-files
python app.py
http://127.0.0.1:5000
Note: Production uses Azure MySQL. If the Azure MySQL server is stopped, the production application cannot connect to its database until the server is started again.
| Project | StudySync |
| Developer | Kuunal Mistry |
| App ID | 2410130 |
| Course | Cloud Application Development |
| Backend | Python + Flask |
| Database | Azure Database for MySQL |
| File Storage | Amazon S3 |
| Hosting | Azure App Service |
| Monitoring | Azure Application Insights |
| Edge Layer | Cloudflare Worker |
| Version Control | Git + GitHub |
|
Manage
Assignments & Subjects |
Deploy
Cloud Application |
Store
Academic Files |
Monitor
Application Performance |
Add project screenshots here.
|
StudySync Dashboard |
Assignment Management |
|
File Management |
Cloud Infrastructure |
|
Multi-Cloud
Azure + AWS + Cloudflare |
Managed Database
Azure MySQL |
Cloud Storage
Amazon S3 |
Monitoring
Application Insights |
- Live Application: https://studysync.kuunalmistry.workers.dev
- GitHub Repository: https://github.com/kuunalmistry/StudySync