Agile Books – Python / Flask webapp with automated tests and Continuous delivery

I often take courses – a variety of Scaled Agile and other related ones – that talk about business agility. Focus on good engineering is key to a successful agile implementation especially if you aspire for continuous integration and continuous delivery. Without technical agility there can be no business agility. All talk about process and culture is hollow if you don’t have good engineering. As SAFe puts it nicely – You can’t scale crappy code.

Continuous integration and/or delivery is often quoted as the silver bullet that will help you be agile. However , more often the people in the classes, especially the leadership have never seen or experienced a continuous integration or continuous delivery pipeline for real. This whole approach of having tests that are fully automated, maintaining only a single trunk and deploying to an environment on every check-in is alien to them. That is where the need for this demo app arose.

Why build this webapp ?

The Powerpoint representations are illustrative however not experiential enough. A continuous delivery pipeline for a real product (even a smaller one) will have far more complexities to be used for educational purposes. It is also hard to get access to one. This demo app is built for that – educational purposes – yet it is fully functional. It just makes it so much easier to talk and explain continuous integration and continuous delivery to a newbie – showcasing the code for the app – python/flask based app that does something real, the unit and functional tests that go with it and most importantly running the pipeline.

The other reason – probably the main reason – I built it is because I love coding and wanted to code 🙂

Agile Books – The Webapp

The app is located at http://agilebooksapp.azurewebsites.net/

What does the webapp do?

You could search for any book and it will bring the top 3 results from Google Books search. It essentially calls the Google Books API and gets the results. Why its called an Agile Book app then ? Just like that. It’s a demo app 🙂 It was built to code and demonstrate an end to end “working software” example for CI/CD using a functional Python/Flask application along with example Unit and Functional tests. And yes.. while we are at it.. It is fully responsive and mobile friendly too. Thanks Start Boot Strap for a simple landing page.

The Continuous Delivery Pipeline

CI CD - Continuous Delivery pipeline

The GitHub Repo

The code can be downloaded freely and reviewed, reused, demonstrated as you deem fit. It is available under a MIT License . The code needs tremendous amount of refactoring. Feel free to suggest changes for improvement.

Visit the GitHub Repository

What’s Next?

Since this is a hobby app, though I do hope to maintain it, new features will be added in due course – subject to everything else that is happening in this beautiful world 🙂

The board below gives a glimpse of that.

https://github.com/users/hrishikeshkarekar/projects/1

Thank you for reading this. Happy to hear your feedback on this. Do like, comment and share 🙂

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top
Scroll to Top