Anvil Community Forum

What's everyone building?

Hello from Anvil central! :slight_smile:

We’d love to know a bit more about what you’re all building, no matter how small (or large!) the project.

Share a link to something you’ve built, or tell us your plans! If you have anything you can share that might help or inspire others, then please do.

2 Likes

I’ll update this with links when I can (a lot of what I build is confidential in a cut throat business), but here’s an overview. Anvil handles all front end activities, both for back end management and customer self service screens :

NumberDealer - a telephony management system for people who broker telephone numbers worldwide. Handles accounts and actual call routing, all hosted and managed by me. Zero install for customers.

IVR Services - automated telephony programs, such as conferencing, recorded information, entertainment services (eg. on screen voting) and many others.

SMS - termination and routing of SMS messages at a wholesale level, provision of value added services such as OTP, account verification, voting, micropayments.

Web Marketing - collection and reporting on telephony campaigns via various web marketing platforms such as tying up calls with campaigns and working out likely repeat callers against first timers.

MUD - building a text based multi-user dungeon game. Damn you, Bartle & Trubshaw!

YAPM - Yet Another Project Manager. I know, I know, but there’re just none out there that actually help me.

1,000,000 proof of concepts (at least) for a multitude of things.

8 Likes

Following David’s style:

Theater Ticketing System - a ticketing system for local community theaters that allows users to choose seats. WIP.

Assassin - there’s an old game about time traveling assassins that really needs a good web moderator to keep track of everything. This is a WIP toward providing that.

Online Mysteries - the idea here is to provide a way to purchase a serial mystery that the recipient can play online. They basically solve a series of puzzles to progress through the mystery. Includes tools for authors to create mysteries and profit from them. WIP (back-end financial features are no fun!)

Video Game Contest Submissions - I wrote a quick app to allow kids who participate in my video game programming contests to submit their games.

Parity Grid Test - A quick app to test students’ ability to detect single-bit errors in a parity grid. In this one, black squares represent 1s, and there should be an even number of them. The test is to click on the square that was corrupted. A random grid is generated each time. This was originally written as a standalone Python app using Tkinter…it was pretty easy to rewrite as an Anvil app.

Certificate Tracker - a colleague needed a way to track people’s progress toward a certificate, so I wrote a tracker for her. As people attend events they mark those in the app and get points. Once they earn so many points they get the certificate. The admin area allows her to add/remove/set points for events.

7 Likes

https://7ELZCRSU5W3GRS5E.anvil.app/Q67HLETNBFRBRW64L23L4IHA

I am building an app for the IT department at my school

7 Likes

It’s not yet available for folks to try it out, but I guess it’s already far enough along that you can see what it is and how I’m going about it:

7 Likes

Hello all,

Here is a selection of apps that I have built as part of my job a research analyst. Anvil has made a massive difference in how I get my job done.

Research portal

The research portal is the central hub we use to connect staff to all (most) other resources offered by our department. It contains a curated list of files and applications, a chat window, and a search bar.

The portal uses a flavor of Role-Based Access Control that includes so-called “Attributes” (RBAC-A). More detail can be found in the following papers. I am not an expert in database design but I tried my best to learn about and follow these general guidelines.

Adding Attributes to Role-Based Access Control

The NIST Model for Role-Based Access Control: Towards A Unified Standard

Role Engineering: Methods and standards

To give you a sense of the structure of the DataTables, here are a few pictures that show the relationship between resources and users and how their access is controlled (via the access control table).

users table

files/resources table

access control table

A common pattern in my apps is the use of decorators in server functions to check for authentication and allowed roles/attributes. For example:

@anvil.server.callable('update_email_notification')
@check_authorization
@check_rbac
def update_email_notification(checked):
.
.
.

I’ve been fairly happy with this mechanism as I can modify the allowed roles/attributes in one place.

Mental Health Referral Application

This is a multi-page application that manages mental health referral records. It allows records to be entered, managed, and visualized. Here is an example of the application using fake data.
mental_health_refs

Grammar of Graphics Game

For those in my organization who are learning to make charts with code, I built a training app that helps folks understand a concept called “Grammar of Graphics”. Specifically, the application connects English statements about how data should be visualized, to the corresponding code and chart.grammar

Data Explorer

This is a graphical query builder that allows staff to select student records that satisfy some pattern or criteria. Users can save their queries and also view and use baked-in examples. One hope is that this will help staff to learn the value of a well-defined research question.

Shareable demo of Data Explorer:
https://anvil.works/build#clone:ZATAYK4UFBSV4N5F=EUDTLKRUSGDMAQ777ZNS7KUI

School Visit Tracker

This is another form-type of application that I am showing only because it has a few neat features:

  • The form itself is shared between three staff members associated with each school (superintendent, Principal, VP). The UI changes based on those roles.

  • You can see that there are many fillable components. When the form is saved (either through button clicks or auto-save), all of the components in the content panel are passed to a global module which processes all of the text extraction (or other relevant data) as well as the placement into the database. Since this is a mult-page application, that global module is used for each page, reducing code duplication (i.e., the forms themselves do not interact with the database).

school_visit

Attendance Application

This application gives a live and interactive view of consecutive and habitual absences for any school for which the user has access to (though their role and attributes). Notice that school-level measures can be clicked to reveal student-level details.

Credit Accumulation

This is a perfect example of something that Anvil makes so easy. This app only took one day to put together. It is simply a set of filters that are used together to present an interactive chart. The chart reflects the percentage of accumulated student credits over time. When new criteria are chosen, new charts get added to the screen, making different views of the data easy for folks to compare. Here’s a GIF with some fake data:

com-gif-maker%20(1)


Anvil has fundamentally changed how I do my job and how staff here interact with their data. Thank you Anvil developers for such a wonderful product!

Allan

12 Likes

@campopianoa your data explorer looks very neat! Are you able to share a version of it somehow?

1 Like

Thanks Owen. I’ve prepared a demo version for you. You can find the clone link in my post above.

1 Like

Excellent! Thank you.

Whoa. What you have done in Anvil is extremely amazing. Would you be able to give me permission to view the demo version of the ‘Mental Health Referral Application’ and ‘The School Visit Tracker’.

1 Like

Thank you but unfortunately I do not have versions of those apps that I can share.

Code Name: Spider Pig - A prototype version of a “Text Boxes Over Data” application to manage inventory of radiology garments. (Lead vests, Aprons, skirts, etc.) It includes Role specific access for Admin users (can view all garments of all customers), and Customer users that can only access their own department’s garments. Each garment includes some number of images for the most recent time they were scanned via an X-Ray scanner (for quality control to ensure the lead lining is still viable), and a number of comments. Includes integration with an on-prem machine to integrate the local X-Ray and RFID devices to anvil.works cloud platform. (App is proprietary, I can’t share a link :frowning: )

I’ve also ported a version of my Jeopardy Slack bot that I had written and deployed to Heroku: https://anvil.works/build#clone:OGYFBNKOEJX3FE4F=NOKEMBY2X2GQGC62KYBLDNDA

4 Likes

My question is, does it do whatever a spider pig does?

3 Likes

I’m a bit late to the game but I wanted to add what I’m working on as well. Right now just descriptions but I hope to be able to do deeper walkthroughs of these apps in the coming months.

School Registration App
This was much easier to build than I thought. Students in our program sign up for their classes and log in via their G Suite accounts. A script checks for prerequisites based on a CSV file that is loaded from our student grade system. If the student meets the prerequisites they are enrolled in the course via an API call to our Moodle installation. Total time to build: less than 8 hours.

Mongolian Stock Exchange Analysis App
This is still in a work in progress, but the idea is to show technical and traditional financial analysis of publicly listed companies in Mongolia. Nearly half of the country has a stock exchange account, and there is a definite lack of concrete information in the market.

Speech Recognition Training Data Crowdsourcing
We are about to go live with this app. It allows users to validate transcripts of Mongolian audio or provide their own transcripts of Mongolian audio. The basic app has been enhanced with error handling (for example only allowing Mongolian Cyrillic text as input), a full user page complete with balance, profile, and account history. Thanks to Anvil for a template that I used to create the custom login. I will also be adding scripts that will run occasionally to verify users are accurately completing tasks and identifying users that may be attempting to game the system.

Air Pollution Monitoring Dashboard
Air pollution is a huge problem in Ulaanbaatar, the capital city of Mongolia. The air pollution is mostly caused by the burning of coal in home stoves for heat and cooking. Recent changes to the law have banned the use of raw coal and require the use of enhanced coal that is supposed to be cleaner burning. There is much debate about whether pollution is actually reducing, and I’m currently working on building a visual dashboard that will make this clear. It’s a tricky problem to tackle, as it is difficult to compare day by day as weather has a huge impact on pollution.

I’m just getting started with Anvil, but I’m blown away by how fast it is to develop with. Can’t wait to see how Anvil improved in the future.

5 Likes

Hello,

I’m new here and would love to share what I’ve first built with Anvil.

Daily Devotion App
It’s like a personal diary upon reflecting or meditating on the Word of God. It should have a free Bible. And the capability to write and save thoughts about the scripture being read. Users will have their own public profile like Facebook with timeline of their reflections. And could have a reflection feed as well to read others thoughts that may spark encouragement and inspiration. Could be a freemium app in the future.

I’m also amazed with how we can easily make something using Anvil! More power and God bless!


https://daily-devotion.anvil.app/

Joey

6 Likes

Thanks everyone for sharing, it’s so great to see all your amazing projects :grin: :partying_face: :tada:

2 Likes

I want to bump this conversation up and get it started again.

We’d still love to know how you’re using Anvil and what you’re building with it? It doesn’t matter how small (or large!) the project is, we want to hear about it!

Share a link to something you’ve built, or tell us your plans! If you have anything you can share that might help or inspire others, then please do.

Even if I’ve already given it a plug in show and tell?!!

Sure, plug away! :slightly_smiling_face:

1 Like

Well, aside from working on various apps for paying clients (that are subject to NDAs), I’ve been putting together an Object Relational Mapper (ORM) for Anvil apps.

The idea is to simplify basic CRUD operations to such an extent that there should be no need to write any server side code - the ORM will handle it all.

Instead, you write simple classes and create data tables with structures to match. The ORM then takes care of writing rows to those tables when you want to Create new or Update existing objects, Reads the rows and creates objects from them when you want to fetch back individual objects or sets of them and Deletes rows when you’re finished with an object.

It’s available at https://github.com/meatballs/anvil-orm and I’ve started work on some documentation at https://anvil-orm.readthedocs.io/en/latest/ (but that’s very lacking at the moment and the library does much more than the documentation describes just yet).

I should also add that the time to develop this has been, in part, paid for by two of my clients whilst working on their apps: Nanovare and Osmosis Investment Management

6 Likes