← Back to Journal
Backend Development 7 min read

Engineering AGD HomeCloud

Building file uploads, sharing, quotas, previews, administration, and activity logging with PHP and MySQL.

AGD HomeCloud was created as a personal cloud-storage system where users could upload, organize, preview, and share files. What initially appeared to be a file-upload project quickly introduced deeper questions involving storage, permissions, security, quotas, and administration.

Files require more than an upload form

A reliable upload flow must validate file size, MIME type, destination, user ownership, and available storage. The database must also remain synchronized with files stored on the server.

The system therefore records file metadata separately while maintaining controlled paths for the physical files.

Folders and sharing

Folders use parent relationships so users can create nested structures. Sharing required separate records for files and folders because each resource has different behaviour and permissions.

  • Nested folders using parent identifiers
  • Shared files and shared folders
  • File previews and video thumbnails
  • User-specific storage quotas
  • Administrative account controls

Security and accountability

Authentication alone was not enough. Users needed to be restricted to their own files, while administrators required controlled access to management tools. Activity logs helped record important actions across the platform.

Temporary access codes, rate limits, upload validation, and secure database operations added further protection.

Deploying to shared hosting

Hosting the system on Namecheap introduced practical deployment work involving DNS, SSL, public paths, database configuration, permissions, and production file handling.

The deployment process reinforced that software is not complete when it only runs on a development machine.

Storage systems are built from permissions, metadata, validation, and operational rules—not only from files and folders.