Ed | Nov. 17, 2020, 9:14 p.m.

I had a problem. I needed to get files onto my server from different computers/devices on different networks.

Screenshot of Cloud app

Screenshot of Cloud app

Whilst I could have signed up to a third party provider (Dropbox, Google Drive, etc), I realised I could quickly build my own ‘cloud’ application and upload the files directly to the server.

The project really highlighted the power of Django’s built-in field types and its admin page to get an application up and running very quickly. I created a simple model, using a FileField, and was able to upload the files I needed via the admin site.

Django’s built-in admin site provided all the functionality I needed.

However… I wasn’t satisfied with this and decided to make the app feel a bit more ‘polished’. I added related user models, to assign files to a person, and created categories to filter files by type.

I created custom views to display the user’s files, and added a custom form to allow files to be uploaded.

I created an additional ‘registration’ app, and made use of Django’s built in user authentication views (log in/out, etc.) and added the ‘LoginRequiredMixin’ to my custom views.

Now, the Cloud app is accesible to multiple registered users, who can upload, store and access their files.

The Cloud app turned out to be an exciting and satisfying project. Firstly, I could clearly see in my mind how I should approach the problem, and was able to quickly and easily build the application. Second, the Cloud app is genuinely useful to me - I continue to use it regularly.

Click the button to launch the Cloud app.

Launch →