Skip to content

About

A full-stack cloud-based assignment management system built with Azure, AWS S3, MySQL, Cloudflare, and Application Insights for scalable storage, deployment, monitoring, and delivery.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

🎓 StudySync

Cloud-Based Student Assignment & Notes Management System

Organize. Manage. Store. Study.

A cloud-based student productivity application for managing assignments, subjects and academic files from one centralized platform.


Live Demo

 

GitHub



Python Flask MySQL AWS S3 Azure Cloudflare



StudySync

✨ About StudySync

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

🚀 Live Application

Open StudySync

https://studysync.kuunalmistry.workers.dev

✨ Features

📝 Assignment Management

  • Create assignments
  • View assignments
  • Edit assignments
  • Delete assignments
  • Organize assignments by subject

📚 Subject Management

  • Create subjects
  • View subjects
  • View subject-wise assignments
  • Keep academic work organized

📂 File Management

  • Upload assignment files
  • Download files
  • Delete files
  • Private cloud storage through Amazon S3

☁️ Cloud Infrastructure

  • Azure application hosting
  • Azure MySQL database
  • AWS S3 file storage
  • Cloudflare edge layer
  • Application Insights monitoring

🏗️ System Architecture

👤 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

Architecture Flow

┌──────────────┐
│    Student   │
│ Web Browser  │
└──────┬───────┘
       │ HTTPS
       ▼
┌──────────────────────┐
│  Cloudflare Worker   │
│ Reverse Proxy / Edge │
└──────────┬───────────┘
           │ HTTPS
           ▼
┌────────────────────────────┐
│     Azure App Service      │
│  Flask / Python Application│
└───────────┬────────────────┘
            │
       ┌────┼─────────────┐
       │    │             │
       ▼    ▼             ▼
┌─────────┐ ┌─────────┐ ┌──────────────────┐
│ Azure   │ │ AWS S3  │ │ Application      │
│ MySQL   │ │ Storage │ │ Insights         │
└─────────┘ └─────────┘ └──────────────────┘

☁️ Cloud Services

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.

🧰 Technology Stack

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

🔄 Request Flow

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

📁 Project Structure

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.

🗄️ Database

StudySync uses Azure Database for MySQL Flexible Server for structured application data.

Flask Application
       │
       ▼
Flask-SQLAlchemy
       │
       ▼
     PyMySQL
       │
       ▼
Azure Database for MySQL

🪣 AWS S3 File Storage

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


☁️ Cloudflare Worker

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

📊 Application Monitoring

Azure Application Insights provides application observability and diagnostics.

📡
Requests
⚡
Performance
⚠️
Errors
📋
Telemetry

🔐 Security

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
  • .env is 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.

🧪 Testing

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.

🚀 Deployment

☁️ Cloudflare

Worker
Edge / Reverse Proxy
→

🔷 Azure

App Service
Flask Application
→

🗄️ Data Layer

Azure MySQL
AWS S3

💻 Local Development

1. Clone the repository

git clone https://github.com/kuunalmistry/StudySync.git

2. Enter the project

cd StudySync

3. Install dependencies

pip install -r requirements.txt

4. Configure environment variables

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

5. Run the application

python app.py

6. Open in browser

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 Information

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

🎯 Project Objectives

📚

Manage
Assignments & Subjects

☁️

Deploy
Cloud Application

📂

Store
Academic Files

📊

Monitor
Application Performance

📸 Screenshots

Add project screenshots here.

StudySync Dashboard



Assignment Management



File Management



Cloud Infrastructure




🌟 Highlights

☁️

Multi-Cloud
Azure + AWS + Cloudflare

🗄️

Managed Database
Azure MySQL

🪣

Cloud Storage
Amazon S3

📊

Monitoring
Application Insights

🔗 Links


Footer

🎓 StudySync

Cloud-Based Student Assignment & Notes Management System

Built by Kuunal Mistry

About

A full-stack cloud-based assignment management system built with Azure, AWS S3, MySQL, Cloudflare, and Application Insights for scalable storage, deployment, monitoring, and delivery.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages