Skip to content

Commit

Permalink
add the tiny-twitter example from pgconf.eu 2023
Browse files Browse the repository at this point in the history
  • Loading branch information
lovasoa committed Dec 14, 2023
1 parent 2b6b981 commit cb39986
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 1 deletion.
1 change: 0 additions & 1 deletion examples/tiny_twitter
Submodule tiny_twitter deleted from 6d472f
1 change: 1 addition & 0 deletions examples/tiny_twitter/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
sqlpage.bin
4 changes: 4 additions & 0 deletions examples/tiny_twitter/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
FROM lovasoa/sqlpage:main

COPY sqlpage /etc/sqlpage
COPY . /var/www/
8 changes: 8 additions & 0 deletions examples/tiny_twitter/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Tiny Tweeter

This is a simple example of a very simple Twitter-like application running on top of PostgreSQL.
It is called tweeter because Elon Musk already has the Twitter trademark, even though he doesn't use it.

It was presented at the [2023 PGConf.EU](https://2023.pgconf.eu/) conference.

You can find the slides at https://sql.ophir.dev/pgconf/pgconf-2023.html.
15 changes: 15 additions & 0 deletions examples/tiny_twitter/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
services:
sqlpage:
build: .
ports: ["8080:8080"]
volumes: [".:/var/www"]
depends_on: [postgres]
environment:
- DATABASE_URL=postgres://root:root@postgres/sqlpage
postgres:
image: postgres:16
ports: ["5432:5432"]
environment:
- POSTGRES_USER=root
- POSTGRES_PASSWORD=root
- POSTGRES_DB=sqlpage
22 changes: 22 additions & 0 deletions examples/tiny_twitter/index.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
select 'shell' as component,
'TinyTweeter' as title;

select 'form' as component,
'Tweet' as validate;
select 'new_tweet' as name,
'Your story' as label,
'textarea' as type,
'Tell me your story...' as placeholder;
select 'checkbox' as type,
'Terms and conditions' as label,
true as required;

insert into tweets (tweet)
select :new_tweet
where :new_tweet is not null;

select 'card' as component,
'Tweets' as title,
1 as columns;
select tweet as description
from tweets;
4 changes: 4 additions & 0 deletions examples/tiny_twitter/sqlpage/migrations/0001_tweets.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
CREATE TABLE tweets(
id bigserial,
tweet text
);

0 comments on commit cb39986

Please sign in to comment.