# Sinatra Forms

## Overview

In this video, we will review the development of basic web application using the Sinatra MVC framework. The lecture uses slides and coding walkthroughs to present students with a comprehensive overview of basic concepts. The emphasis is on Sinatra, but topics from many recent lessons are discussed. These include Rack, ORMs, CSS, and others.

We will begin by explaining how to mount a controller and then outlines the 7 controller actions that display and modify data. Using a photo sharing website as an example, the video details how to set up a PostsController class that incorporates these 7 actions. Route Variables, Query Strings, and the params hash are defined and demonstrated within this example. We then will explain how to write an HTML form and then post that form to the website.

It is very important that students have a thorough understanding of Sinatra before moving forward. You should feel free to watch this lecture as many times as necessary, and you are encouraged to search for additional resources using google or your favorite search engine.

## Objectives

1. Learn how to build/onboard an application with CRUD functionality
2. Describe REST and the request cycle
3. Use config.ru to start web apps using Rack
4. Use Shotgun to spin up a server
5. Explain basic Sinatra MVC structure in relation to web apps
6. Explain the uses of HTTP verbs for sending and receiving data
7. Explain how languages, DSLs, frameworks, clients, and databases work together in a stack

## Video

&#x20;\<iframe width="100%" height="720" src="<https://www.youtube.com/embed/0TyCN_oJU3Y?rel=0&showinfo=0>" frameborder="0" allowfullscreen>\</iframe>

View [Sinatra Video Review: Forms](https://learn.co/lessons/sinatra-video-review-forms) on Learn.co and start learning to code for free.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://certil-remy.gitbook.io/learn/sinatra/untitled-12.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
