StarterKitCloud: An application project template (python/django)

in #django7 years ago

I just published the backend portion to my project template today on github. Check out the repository here: 

https://github.com/starterkitcloud/sk-backend

What problem does this solve? 

  1. Devops (everything is dockerized)
  2. Simplified task management (celery, django, and rabbitMQ are already configured to work out of the box)
  3. Rest API with oAuth configured out of the box 

Over the years I have found that there are a few common things that people ignore in the beginning of a project. For the sake of speed and convenience people fail to set themselves up for success. The shortcuts people think are helping them are actually causing them to have massive technical debt. It is a visual thing. People like to see features and buttons working ASAP and they end up ruining everything. 

Devops

This repository let's a developer get straight to the features without "wasting" their time on things like configuration and devops. Having a clear way to deploy and manage infrastructure makes your organization run more predictably and also allows you to effectively hire new developers. You can't hire new developers if you have no process in place for them to follow. 

Worker Queue

This repository has a great worker queue that is already configured. Having a worker queue is very powerful. I have seen a lot of projects that do not have any way to do batch processing or scheduled tasks and they end up just abusing the systems that they have in place instead of taking the time to set up the needed services. It's a pain in the ass to set up celery and rabbitMQ so a lot of django projects end up just trying to fit a bunch of code in the views and models when it really shouldn't be there; this results in really slow request times and just a hacky feel in general. With this repository you have a very easy way to just write a new method when you need to do something that requires a long compute time or needs to be scheduled periodically. It's all dockerized and preconfigured. 

API

Modern infrastructure requires a separation of concerns. The UI/UX portion of  your application should be separated from the backend business logic. The new wave of progressive web apps requires the practice of having an API on the backend and a nice single page application (SPA) on the frontend using modern frameworks like vue.js and react.js . This repository uses django rest framework and oauth to provide a backend for both progressive web apps and native mobile apps. 

I finally had some time to put this together in to a simple repository and plan to continue to develop more content and tutorials around it. 

https://github.com/starterkitcloud/sk-backend

The Roadmap:

over the next few weeks I will also be publishing a frontend that goes with the backend. The front end has all the basic screens for user management; Sign up, login, reset password, dashboard (signed in screen). I have most of this built using vue.js but am also making a react.js version. 

I have some empty repos in place for those right now, but will be releasing soon:

https://github.com/starterkitcloud/sk-vue

https://github.com/starterkitcloud/sk-react

Almost done with the vue one :-) 

If you think this is an interesting project I would love any feedback. Trolls are welcome to point out anything that could use some improvement. Keep in tune. :-)

@spencercooley