Skip to main content

Dropbox-like app with Client, Server, and Website

Project description

box5

A personal Dropbox-like app with Client (desktop sync), Server (cloud storage), and Website (web UI).

Quick Start

Start All Services

./run.sh

Manual Start

# Server (port 3111)
cd Server && uvicorn main:app --port 3111

# Website (port 3112)
cd Website && uvicorn main:app --port 3112

# Client Sync
python -m Client.main --username ccc --password cccpass --folder ./sync

Features

File Sync

  • Place files in ./sync/ folder to auto-upload
  • Changes detected and synced automatically
  • Use ./sync/public/ for public files (accessible without login)

Folder Navigation (ls-style)

  • Root shows subfolders: subdir/, public/
  • Click folder to enter
  • In subfolder shows ../ to go back
  • Breadcrumb shows current path

File Version History

  • Same filename shows only latest version on homepage
  • Click "History" to see all versions (v1, v2, v3...)

File Viewer (v1.0 Static Rendering)

  • Files view natively via absolute path routes like /view/public/ccc.md
  • .md → Markdown rendered with true relative-link support layout (e.g., ./img/ccc.jpg)
  • .txt → Plain text display
  • .html/.css/.js → Direct static site web response execution
  • .jpg/.png/.gif → Native image display streaming
  • Other files → Download

Public Files

  • Files in sync/public/ are uploaded as public
  • Access via /api/public/files or Website /public

Web Editor

  • Web-based code editor similar to VSCode (access at /editor)
  • Monaco Editor for multi-tab code editing
  • Integrated Terminal with real-time multiplexed PTY

Run Tests

./test.sh

Tech Stack

  • Python + FastAPI + sql5
  • sql5 source: /Users/Shared/ccc/project/sql5

Project Structure

  • Server/ — FastAPI server with sql5 database
  • Client/ — Desktop sync client using watchdog
  • Website/ — Web UI with Jinja2 templates
  • tests/ — pytest unit tests
  • _doc/ — planning docs and version notes

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

box5-1.0.0.tar.gz (31.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

box5-1.0.0-py3-none-any.whl (31.4 kB view details)

Uploaded Python 3

File details

Details for the file box5-1.0.0.tar.gz.

File metadata

  • Download URL: box5-1.0.0.tar.gz
  • Upload date:
  • Size: 31.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for box5-1.0.0.tar.gz
Algorithm Hash digest
SHA256 2996d8dd61cccda4a28850bc8a7f6c1562b2401bc0840a5d9b522c6faa28c78c
MD5 c4e0856c9af987653d7c326f323a17e4
BLAKE2b-256 5ec0139290f5a7e80dcf8dcef995b00fe8f14a5b0d123ac49374d57562de163c

See more details on using hashes here.

File details

Details for the file box5-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: box5-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 31.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for box5-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 65e1fb9b8c66efb41a60dda1952d4885c7ae8ded6c08977e1e2f47984e02a66f
MD5 f281e0d1163aef8c786ee47d7b989a47
BLAKE2b-256 3ae219b85f24ef4525db48195a517ef7a63a21d4ccc6cc8119b4503816dba697

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page