SkySync is a Google Drive-inspired cloud storage system built as a full-stack project, where the complete backend is developed using Django (Python) and MySQL. This repository focuses exclusively on the backend API development and backend logic that powers the SkySync application.
This project showcases my backend engineering skills in building scalable APIs, managing complex file systems, and handling user storage and authentication workflows.
-
🔐 User Authentication System
User registration, login, logout, profile management, and profile picture updates. -
📄 File Uploads
Support for individual file uploads, folder uploads, and image uploads. -
🗂️ Folder Management
Ability to create folders, navigate inside folders, and manage folder structure efficiently. -
⭐ File Organization
Star and unstar files for easy prioritization. -
🗑️ Trash System
Move files to trash, restore files, and permanently delete files using an empty bin feature. -
🕑 Recents & Suggested
Quickly access recently used files and suggested files. -
📦 Storage Management
Monitor storage usage and storage distribution by file format. -
🔗 Sharing Features
Share files with other users and access files shared with you.
- Framework: Django (Python)
- Database: MySQL
- Static & Media Management: Django Static and Media Configuration
- API Routing: Django URL Dispatcher
- Authentication: Django Sessions
| Feature | Endpoint |
|---|---|
| Left Panel Data | /api/left_panel/ |
| Right Panel Data | /api/right_panel/ |
| Dots Panel Data | /api/dots_panel/ |
| Profile Picture | /api/profile_pic/ |
| File Upload | /api/file_upload/ |
| Folder Upload | /api/folder_upload/ |
| Create Folder | /api/create_folder/ |
| Inside Folder View | /api/inside_folder/ |
| Get User Data | /api/get_data/ |
| Star/Unstar Files | /api/starred/ |
| Trash | /api/bin/ |
| Rename Files | /api/rename/ |
| Share Files | /api/share/ |
| Storage Details | /api/storage/ |
| Shared With Me | /api/shared_with_me/ |
| Recent Files | /api/recent/ |
| Suggested Files | /api/suggested/ |
| Empty Trash | /api/empty_bin/ |
| Storage Usage Stats | /api/storage_usage/ |
| File Format Stats | /api/file_format/ |
| Shared Starred Files | /api/shared_star/ |
| Feature | Endpoint |
|---|---|
| User Registration | /api/user_registration/ |
| Login | /api/login_view/ |
| Logout | /api/logout_view/ |
| Profile Options | /api/options/ |
| Email Verification | /api/verify/ |
| User Profile | /api/profile/ |
| Profile Picture | /api/image/ |
| Update Profile Pic | /api/update_profile_pic/ |
- Python 3.x
- MySQL Server
- pip / virtualenv
# Clone the project
git clone https://github.com/yourusername/skysync-backend.git
cd skysync-backend
# Setup virtual environment
python -m venv venv
source venv/bin/activate
# Install required packages
pip install -r requirements.txt
# Configure MySQL in settings.py
# Run database migrations
python manage.py makemigrations
python manage.py migrate
# Start the development server
python manage.py runserverIn development mode, static and media files are served using Django’s static module.
You can watch the SkySync full application demonstration here:
🔗 Video Demo
- Cloud Storage Integration (AWS S3, Google Cloud)
- File Versioning
- In-app Notifications
- Real-Time File Sync with WebSockets
- Mobile App Integration Support
Srijan Omar
Backend Developer | Python | Django