Open-Source Django Projects to Get Started

(Picture: https://unsplash.com/photos/SYTO3xs06fU)

Learning Django is really fun. I love programming with Python and for most of my project I use Django framework. But it can be confusing at beginning especially if your are coming from Java, PHP or C# background.

The biggest challenges for me was to get familiar with the initial Django setup, understand the URL routing, and get to know how to organize the project files and apps. I’ve not being around for that long, it’s been only three years now since I started to mess around with Django.

Regarding those challenges, now I can say I’m really comfortable with the Django setup (you will eventually get there after creating a few projects), I fully understand how Django routes URLs but I’m always googling around to find a suitable regex for my needs, and finally, I’m always trying new ways to organize my Django projects.

In this post I will present you some open-source Django projects, which can help you to get started and learn more about how to get things done with Django. Some of those open-source project can be very clear and easy to understand. 

Django Project

Django’s own website is powered by (you guessed it) Django. The repository is online on GitHub.

As with most things Django, this project is exceptionally well documented! You can find clear instructions on setting up a development environment and frequent development tasks. Inside the repo, there are all the components of the deployment process, and tooling around the final deployed application. The Makefile and the Procfile are nice places to start your exploration.


Django Oscar

Oscar makes few assumptions about your project, allowing virtually any part of the framework to be extended and customised. In this way, complex business rules can be captured in an elegant and cohesive way.

Oscar is an extensible core means any class can be overridden, replaced and extended. This is the key feature that allows any project to be captured accurately in the codebase - no work-arounds!, Also, a well-designed set of models built on the experience of many e-commerce projects, both large and small. With a well documentation including recipes for solving common problems and extensive test suite.

Posthog

PostHog provides open-source product analytics, built for developers. Automate the collection of every event on your website or app, with no need to send data to 3rd parties. With just 1 click you can deploy on your own infrastructure, having full API/SQL access to the underlying data.

PostHog gives you full control over all the data from your users, while allowing anyone to do powerful analytics. This means you can know who is using your app, how they're using it, and where you lose users, among many other things.

Health checks

Health checks Simple and Effective Cron Job Monitoring and similar periodic processes, it notify you when your nightly backups, weekly reports, cron jobs and scheduled tasks don't run on time. It keeps silent as long as pings arrive on time but It raises an alert as soon as a ping does not arrive on time.

Wagtail

Wagtail is a CMS built on top of Django, as Saleor. It's focused on user experience, and offers precise control for designers and developers. this is not a web app project, but a very cool codebase! You can check it out on GitHub.

One thing I found really interesting here, was the use of developer tooling around the project. Check out all the non-Django specific files in the repository root, and try to find out what they are used for :)

Want to find more projects?

The repositories above should be plenty to help you learn more about real-world, big Django codebases and how they are structured.

Even if you only take a little time to explore one of them, I’m sure you’ll be able to spot a lot of interesting details which will help to guide your practical learning efforts.


0 comments