A web-based file management application built entirely with Django (without Django REST Framework). This project allows users to register, log in, upload files, and manage file versions through a simple web interface and JSON-based views.
-
User Authentication
Secure user registration and login system using Django's built-in auth. -
File Uploading
Users can upload files to custom directory paths. -
File Versioning
New file versions are automatically created when changes are detected. -
Content Change Detection
The system uses SHA-256 hashing to avoid creating duplicate file versions. -
File Downloads
Any file version can be downloaded by the user. -
Structured Views Returning JSON
Instead of a REST framework, functionality is exposed via Django views that return JSON responses. -
Directory Management
Users can browse their custom file directories and view all uploads.
The project includes the following Django apps:
accounts: Handles user registration and authentication.files: Contains core models (File,Version) and the main upload/download logic.api: Despite the name, it contains classic Django views (not DRF) that work with JSON requests/responses for dynamic behavior on the frontend.
- Python
- Django
- Pytest (for testing)
- Python 3.x
pip(Python package installer)
git clone <your-repository-url>
cd FileManager