A sleek, high-performance cloud storage and image management platform built with FastAPI, SQLAlchemy, and ImageKit.io.
- 🔐 Secure Authentication: Fully integrated JWT-based user system (Login/Register).
- ☁️ Cloud Storage: Seamless file uploads directly to ImageKit's global CDN.
- 🖼️ Asset Management: Organise your files with captions and track creation dates.
- ⚡ Asynchronous Core: Built on Python's
async/awaitfor maximum throughput. - 💎 Premium UI: Modern dark-mode interface with glassmorphism and smooth animations.
- 🛡️ Ownership Protection: Users can only manage and delete their own uploaded assets.
- Backend: FastAPI (Python 3.14+)
- ORM: SQLAlchemy with
aiosqlite - Auth: FastAPI Users
- Cloud Storage: ImageKit.io
- Frontend: Vanilla HTML5, CSS3 (Glassmorphism), and JavaScript (ES6+)
FastApi_Project/
├── app/
│ ├── app.py # Main FastAPI routes & logic
│ ├── db.py # Database models & session management
│ ├── images.py # ImageKit client configuration
│ ├── schema.py # Pydantic data validation schemas
│ └── users.py # Auth & User management config
├── static/
│ └── index.html # Frontend UI (SPA)
├── main.py # Server entry point
├── test.db # SQLite database file
└── .env # Environment variables (Internal)- Python 3.14 or higher
- An ImageKit.io account
Understanding how Aura Drive works under the hood:
- The Flow:
- User selects a file in the Frontend (Vanilla JS).
- JS sends a
FormDatarequest to the FastAPI Backend. - FastAPI saves a temporary file, then streams it to ImageKit Cloud.
- Once uploaded, the Cloud URL is saved to SQLite via SQLAlchemy.
- Asynchronous I/O: Every part of the backend is
async. This means while one user is waiting for a large 50MB upload to finish, the server can still process login requests for hundreds of other users simultaneously. - Glassmorphism Design: The UI uses modern CSS
backdrop-filterandrgbaalpha-transparency to create a high-end, layered aesthetic that feels premium.
Clone the repository and install dependencies using uv (recommended) or pip:
# Using uv
uv sync
# Using pip
pip install -r requirements.txtCreate a .env file in the root directory with your ImageKit credentials:
IMAGEKIT_PRIVATE_KEY=your_private_key
IMAGEKIT_PUBLIC_KEY=your_public_key
IMAGEKIT_URL_ENDPOINT=https://ik.imagekit.io/your_idStart the development server:
uv run main.pyThe application will be available at http://localhost:8000.
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
POST |
/auth/jwt/login |
Obtain a JWT token | No |
POST |
/auth/register |
Register a new account | No |
GET |
/feed |
List all assets | Yes |
POST |
/uploadfile |
Upload a new asset | Yes |
DELETE |
/posts/{id} |
Delete an asset | Yes |
Note
This project is designed for demonstration purposes. Ensure SECRET keys in app/users.py are moved to environment variables for production deployments.