A fully-featured workflow app, built in Python
In this writeup, I’ll show you how I used Anvil to build a large-scale ticketing system entirely in Anvil, integrating mock ups from professional designers into the drag-and-drop designer.
Anvil makes it simple to build large-scale, shippable new products with Python.
The end result
Here it is! A fully-featured ticketing system, built entirely in Anvil.
Click the following link to clone the finished app and explore it yourself.
The process
Below, I’ve outlined the process involved in building the ticketing system, from concept to final product.
Read on to learn how you can build your own business applications with Anvil.
1. Requirements
The first step is to decide on the key requirements for your system:
Next, work through these requirements and decide on a list of screens that will satisfy each requirement.
I decided my ticketing system would need these screens:
- Dashboard
- Ticket inbox
- Single ticket view
- Customers view
- Add a ticket view
2. Wireframes
Next, sketch up some simple wireframes for each of these screens, ready to send to your designers.
Here’s my wireframe for the ticket inbox:
3. Professional design
Send your wireframes to a professional designer to provide mock ups of each of your screens.
Here’s the mock up for the wireframe above:
4. Build the UI
The next step is to build your UI. You can integrate your custom designs into Anvil and use the drag-and-drop designer to build powerful apps.
Create your own custom components that you can access from the Toolbox at any time, and use Layouts to reuse page structures across multiple Forms. For more in-depth information on customising the look and feel of your Anvil apps, take a look at our User Interfaces documentation.
Here’s the final view of the ticket inbox:
5. Database
Next, you’ll want to set up your database. Anvil’s Data Tables are a full database system built on top of PostgreSQL, with a nice GUI for creating, editing and deleting tables. This makes it simple to define your schema.
Getting my database set up took a matter of minutes:
6. Build the application logic with Python
Finally, the fun bit - writing the logic of your application with Python.
Anvil lets you write Python that runs in the browser, Python that runs on the server, and call your server functions from client-side Python with just one line of Python.
Wiring up the UI and components was great fun, and surprisingly simple - the backend of the ticketing system is less than 300 lines of Python.
Build your new product with Anvil
Anvil makes building large-scale, powerful applications simple, straightforward and fast. It does this by automating of a lot of the things that make web development using traditional tools slow, and painful. It can power anything from small, simple web apps to large-scale, fully-featured business applications.
You can build your whole new product yourself, all your need is a little Python.
This ticketing system has all the features of a traditional “CRUD” app, is rather nice on the eyes (if I do say so myself..) and it’s very powerful. It’s backed by Postgres, email-driven, and has built-in user authentication. It’s powered by Python running in the browser, as well as on the server, meaning that it’s extremely customisable - clone it into your account, and have a play around for yourself:
Want to dig into how this app works? Our tutorials show you all the pieces this app is made from, and more:
Data Dashboard
Build Database-Backed Apps
Build a Simple Feedback Form
Build a data-entry app, and learn the techniques fundamental to building any Anvil app. In this tutorial, you will:
- Write server-side Python
- Build your User Interface
- Write client-side Python
- Store data in a database
- Deploy your app