Skip to content

Commit

Permalink
readme edit and guides placeholders added
Browse files Browse the repository at this point in the history
  • Loading branch information
sebastianconcept committed Feb 11, 2024
1 parent a4ec571 commit 106e4e9
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 27 deletions.
3 changes: 3 additions & 0 deletions AddAuthToYourRideBasedWebApplication.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Add auth to your Ride-based web application

To be done.
3 changes: 3 additions & 0 deletions BuildingATwitterLikeApplicationWithRide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Building a Twitter like application with Ride

To be done.
3 changes: 3 additions & 0 deletions DeployingYourRideBasedWebApplicationOnTheCloud.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Deploying your Ride-based web application on the cloud

To be done.
3 changes: 3 additions & 0 deletions MakeABlogWithCommentsUsingRideInEightMinutes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Make Blog with comments using Ride in 8 minutes

To be done.
68 changes: 41 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,26 +21,31 @@ The Smalltalk web application framework with productivity as a feature.
- MVP - Model-View-Presenter architecture.
- Declarative routing.
- Multiple View options for rendering HTML, JSON, XML and more.
- Default Views based in smart efficient templates: [STTemplate](https://github.com/sebastianconcept/STTemplate).
- Versatile and comfortable default persistence: [Mapless](https://github.com/sebastianconcept/Mapless)
- Default Views based in smart efficient templates using [STTemplate](https://github.com/sebastianconcept/STTemplate).
- Versatile and comfortable persistence without lock-in using [Mapless](https://github.com/sebastianconcept/Mapless).
- Intuitive conventions.
- Made with scalability and performance in mind.
- RESTful.
- Builder to scaffold code.
- Basic validation.
- Builder to scaffold useful code fast.
- ~~Basic validation~~. To be done.
- Optional custom JavaScript for presenters.
- AJAX via [htmx](https://htmx.org/).
- Able to deploy containerized from day one.
___
- ~~Able to deploy containerized from day one~~. To be done.

---

1. [Description](#description)
2. [Examples](#examples)
3. [Install](#install)
4. [Snippets](#snippets)
3. [Hello World](#hello-world)
4. [Install](#install)
5. [Guides](#guides)
6. [Talks](#talks)

### Description

Ride is a framework designed for building Web Applications and RESTful APIs, optimizing for developer productivity while preserving production efficiency and scalability. Ride focuses on eliminating the hurdles to quickly build and deploy real projects without compromising your architecture's ability to scale in production.

Ride is a framework designed for building Web Applications and RESTful APIs, emphasizing developer productivity, production efficiency, and scalability. It comes equipped with a builder that streamlines the process of scaffolding models, views, presenters, the CRUD operations and their unit tests, enabling you to rapidly progress in your development journey.
It comes equipped with a builder that streamlines the process of scaffolding models, views, presenters, CRUD operations and their unit tests for the models you need. Ride removes many technical obstacles, allowing you to progress rapidly in your application development journey from proof of concept and startup product to a growing business.

### Install

Expand All @@ -52,15 +57,15 @@ cd my-ride-app
curl get.pharo.org/64/100 | bash
curl get.pharo.org/64/vm100 | bash
```

And run it

```
./pharo-ui Pharo.image
```

#### Install Ride in it

Essential core:

```Smalltalk
Metacello new
baseline: 'Ride';
Expand All @@ -69,27 +74,20 @@ Metacello new
load.
```

All optionals:
```Smalltalk
Metacello new
baseline: 'Ride';
repository: 'github://sebastianconcept/ride';
onConflict: [ :ex | ex useIncoming ];
load: #( 'Core' 'Tests' ).
```
### Examples

### Snippets
Handy to start stop the Ride in the Welcome example app:

```Smalltalk
"Stop anything Ride running and reset anything being in any cache at any level"
"Stop anything Ride running and reset anything being in any cache at any level"
Ride stop; reset.
"Your application, say BlogApp, has its own helper RideService subclass"
"Install BlogApp as the Ride service"
BlogApp install.
"Start and stop the service"
"Start and stop the service"
BlogApp start.
BlogApp stop.
Expand All @@ -98,22 +96,23 @@ BlogApp restart.
```

### Enhancing developer productivity

Ride offers you a convenient way to quickly create the basic elements needed for implementing a feature based in a new model. For example, given a `Blog` web application to publish `Post` and `Comment` models, you could:

```smalltalk
"Set the default package name that will be the destination of the code generated by Ride's builder"
Ride create app setPackageNameTo: #Blog.
"Create the foundational Smalltalk code and files of the project using the given root word 'Blog' "
"Create the foundational Smalltalk code and files of the project using the given root word 'Blog' "
Ride create app for: #Blog.
"Create the skeleton for having basic CRUD features in a model named `Post`"
"Create the Smalltalk code and files for having basic CRUD features in a model named `Post`"
Ride create mvp crud for: #Post.
"Create the skeleton for having basic CRUD features in a model named `Comment`"
"Same for a model named `Comment`"
Ride create mvp crud for: #Comment.
"Create a RideModel subclass Subscription used to store people subscribed to your blog."
"Create a RideModel subclass Subscription used to store people subscribed to the blog."
Ride create model for: #Subscription.
"Create a RidePresenter subclass SubscriptionPresenter"
Expand All @@ -125,7 +124,7 @@ Ride create view stt for: #Subscription.

## MVP

Using these basic code generators, Ride also can create the elemental Model-View-Presenter code for a given model:
Ride also can create the elements of the Model-View-Presenter code separately for a given model:

```smalltalk
"Create the model and presenter classes and STTemplate file for Post"
Expand All @@ -139,7 +138,22 @@ Ride create mvp crud for: #Post.
```

## API

If you need an API and you like to keep concerns organized with MVP, this is how you can generate its boilerplate code:

```smalltalk
Ride create api crud for: #Post.
```
## Guides

- [Make a Blog with comments using Ride in 8 minutes](./MakeABlogWithCommentsUsingRideInEightMinutes.md).
- [Building a Twitter like application with Ride](./BuildingATwitterLikeApplicationWithRide.md).
- [Ride-based SaaS template](./RideBasedSaaSTemplate.md).
- [Add auth to your Ride-based web application](AddAuthToYourRideBasedWebApplication.md).
- [Deploying your Ride-based web application on the cloud](DeployingYourRideBasedWebApplicationOnTheCloud.md).

## Talks

Ride was presented for the first time at [Smalltalks 2023](https://smalltalks2023.fast.org.ar/) organized by [F.A.S.T.](https://www.fast.org.ar/) at [Universidad Nacional de Quilmes](https://www.unq.edu.ar/).

November 2023: [RAD with templates, htmx and stateless Smalltalk images by Sebastian Sastre](https://www.youtube.com/watch?v=4_gmvN0pimI)
3 changes: 3 additions & 0 deletions RideBasedSaaSTemplate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Ride-based SaaS template

To be done.

0 comments on commit 106e4e9

Please sign in to comment.