Skip to content

skybox-apcs/skybox-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

115 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SkyBox ☁️

Go Version License: GPL AWS S3 MongoDB Atlas

SkyBox is a secure, scalable cloud storage solution inspired by Google Drive and Dropbox, built with Go, AWS, and MongoDB. It offers file storage, sharing, and synchronization across devices.

Note

This is the final group project of a course in VNUHCM - University of Science - CS422 - Software Analysis and Design.

Features ✨

Core Features

  • File Management: Upload, download, organize files and folders
  • User Authentication: Secure signup/login with JWT
  • File Sharing: Share files/folders with other users
  • Versioning: Keep track of file versions

Advanced Features

  • Chunked Uploads: Support for large files
  • Real-time Sync: WebSocket-based file synchronization
  • Search: Full-text search across your files
  • Trash System: Recover deleted files within retention period

Technology Stack 🛠️

Backend

  • Language: Go (Golang)
  • Framework: Gin
  • Database: MongoDB
  • Object Storage: AWS S3

Frontend

  • React

Getting Started 🚀

Prerequisites

  • Go 1.20+
  • MongoDB 6.0+
  • AWS Account with S3 access
  • Node.js (for frontend)

Installation

Install from Source

  1. Clone the repository:
git clone https://github.com/skybox-apcs/skybox-backend.git
cd skybox-backend
  1. Set up environment variables:
cp .env.example .env
# Edit .env with your configuration: MongoDB URI, server ports, etc.
  1. Install dependencies:
go mod download
  1. Run the application:

You can run either:

  • API Server only - handles auth, metadata, and user logic.
  • Block Server only – handles raw file uploads/downloads,
  • Combined Server – runs both in one process (useful for local dev).
# Run API Server
go run .\cmd\api-server\main.go

# Run Block Server
go run .\cmd\block-server\main.go

# Run Combined Server
go run .\cmd\server\main.go
  1. Access the application:
# API Server
http://localhost:8080
# Block Server
http://localhost:8081

Deployment

TBA

Contributors

The project could not have been completed without these developers!

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages