Skip to content

Srijanomar3094/skysync-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 

Repository files navigation

🚀 SkySync - Backend Repository

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.


📂 Key Features (Backend)

  • 🔐 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.


🎯 Backend Stack

  • Framework: Django (Python)
  • Database: MySQL
  • Static & Media Management: Django Static and Media Configuration
  • API Routing: Django URL Dispatcher
  • Authentication: Django Sessions

🔌 API Structure

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/

🔐 Authentication Endpoints

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/

⚙️ Project Setup (Local)

Prerequisites

  • Python 3.x
  • MySQL Server
  • pip / virtualenv

Setup Instructions

# 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 runserver

📦 Static & Media Files

In development mode, static and media files are served using Django’s static module.


📹 Video Demonstration

You can watch the SkySync full application demonstration here:
🔗 Video Demo


🚀 Future Enhancements

  • Cloud Storage Integration (AWS S3, Google Cloud)
  • File Versioning
  • In-app Notifications
  • Real-Time File Sync with WebSockets
  • Mobile App Integration Support

👨‍💻 Author

Srijan Omar
Backend Developer | Python | Django

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors