# Storing News in a Database

In this tutorial, we’ll take a tour of Anvil and build a simple news aggregator. We’ll start from a blank page, and build up to a web app complete with database storage and deployed on the web - all in nothing but Python.

This is also known as a CRUD app, named after the **C** reate, **R** ead, **U** pdate and **D** elete operations.

The final app will look something like this:

The techniques you’ll learn in this tutorial are fundamental to building any Anvil app, and mastering them will give you a good understanding of how Anvil works.

You don't need any prior experience with Anvil or web development to complete this tutorial.

All you'll need is a little bit of [Python](https://www.python.org/). If you’re new to Python, [here are some resources](/content/docs/overview/help#python/index.html) to help you get started.

## Chapters

In this tutorial, you'll:

### [Create your database tables](/content/learn/tutorials/database-backed-apps/chapter-1/index.html)

Create some [Data Tables](/content/docs/data-tables/index.html) to store your news articles.

### [Build your user interface](/content/learn/tutorials/database-backed-apps/chapter-2/index.html)

Build a User Interface (UI) to add and edit the articles.

### [Write client-side Python](/content/learn/tutorials/database-backed-apps/chapter-3/index.html)

Write some client-side Python code to populate the Categories dropdown from the database.

### [Add news articles to the database](/content/learn/tutorials/database-backed-apps/chapter-4/index.html)

Create: Save the article information that the user enters.

### [Display news articles](/content/learn/tutorials/database-backed-apps/chapter-5/index.html)

Read: Display a list of existing articles.

### [Update existing articles](/content/learn/tutorials/database-backed-apps/chapter-6/index.html)

Update: Modify existing articles using your app.

### [Delete articles](/content/learn/tutorials/database-backed-apps/chapter-7/index.html)

Delete: Delete articles.

### [Challenge yourself](/content/learn/tutorials/database-backed-apps/optional/index.html)

Extend your app and modify its appearance.
