All Projects → bradparker → servant-beam-realworld-example-app

bradparker / servant-beam-realworld-example-app

Licence: other
Exemplary fullstack Medium.com clone powered by Servant and Beam

Programming Languages

haskell
3896 projects
Nix
1067 projects
PLpgSQL
1095 projects
shell
77523 projects

Projects that are alternatives of or similar to servant-beam-realworld-example-app

workflowmanager-viewer-js
Source code for ArcGIS Workflow Manager JavaScript viewer - Manage your workflows on the web.
Stars: ✭ 23 (-30.3%)
Mutual labels:  web-app, web-application, webapp
Theorytracker
🎼 HTML5/WebAudio multi-track functional harmony analysis and songwriting app! -- https://hlorenzi.github.io/theorytracker/
Stars: ✭ 62 (+87.88%)
Mutual labels:  web-app, web-application, webapp
Alumna
[Alpha release of v3] Development platform for humans / Plataforma de desenvolvimento para humanos
Stars: ✭ 32 (-3.03%)
Mutual labels:  web-app, web-application, webapp
Sharry
Sharry is a self-hosted file sharing web application.
Stars: ✭ 170 (+415.15%)
Mutual labels:  web-app, web-application, webapp
Musicode
🎶 Markup language for music creation and analysis! -- https://hlorenzi.github.io/musicode/
Stars: ✭ 34 (+3.03%)
Mutual labels:  web-app, web-application, webapp
Node Red Contrib Uibuilder
Easily create data-driven web UI's for Node-RED using any (or no) front-end library. VueJS and bootstrap-vue included but change as desired.
Stars: ✭ 215 (+551.52%)
Mutual labels:  web-app, web-application, webapp
Raspberry-Pi-Dashboard
Web-based dashboard interface to inspect Raspberry Pi hardware and software with no extra software required.
Stars: ✭ 131 (+296.97%)
Mutual labels:  web-app, web-application
Online-Food-Ordering-Web-App
Online Food Ordering System Website using basic PHP, SQL, HTML & CSS. You can use any one of XAMPP, WAMP or LAMP server to run the Web App
Stars: ✭ 96 (+190.91%)
Mutual labels:  web-application, webapp
SyncPaint
A web app for synchronized group drawing. Draw together with other people in real time.
Stars: ✭ 42 (+27.27%)
Mutual labels:  web-application, webapp
rust-realworld-example-app
Example Rust codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld API spec.
Stars: ✭ 19 (-42.42%)
Mutual labels:  crud, realworld
lumen-realworld-example-app
Exemplary real world backend API built with Lumen + MongoDB
Stars: ✭ 50 (+51.52%)
Mutual labels:  crud, realworld
heroku-flask-template
A simple, fast and easy-to-deploy Heroku ready flask web app template written in Python.
Stars: ✭ 26 (-21.21%)
Mutual labels:  web-app, webapp
web
Cloverleaf is a free, open source app to replace your password manager without storing your passwords anywhere.
Stars: ✭ 33 (+0%)
Mutual labels:  web-app, web-application
keep-desktop
Google Keep Dark: Desktop application for Windows, Mac and Linux with Dark Theme.
Stars: ✭ 42 (+27.27%)
Mutual labels:  web-app, web-application
CometVisu
Repository for the CometVisu building automation visualisation.
Stars: ✭ 60 (+81.82%)
Mutual labels:  web-app, web-application
spring-boot-mongodb-react-java-crud
Spring Boot, MongoDB and React.js CRUD Java Web Application Example
Stars: ✭ 33 (+0%)
Mutual labels:  crud, webapp
card matching game by ercan
A card-matching game made with Flutter.
Stars: ✭ 16 (-51.52%)
Mutual labels:  web-app, web-application
performance-timeline
Performance Timeline
Stars: ✭ 102 (+209.09%)
Mutual labels:  web-application, webapp
mvc
PHP MVC boilerplate with user authentication, basic security and MySQL CRUD operations.
Stars: ✭ 28 (-15.15%)
Mutual labels:  crud, web-application
NodeExpressCRUD
Node, Express, Mongoose and MongoDB CRUD Web Application
Stars: ✭ 45 (+36.36%)
Mutual labels:  crud, webapp

RealWorld Example App

Build Status

A Servant and Beam codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec and API.

Demo RealWorld

This codebase was created to demonstrate a fully fledged fullstack application built with Servant and Beam including CRUD operations, authentication, routing, pagination, and more.

We've gone to great lengths to adhere to the Haskell community styleguides & best practices.

For more information on how to this works with other frontends/backends, head over to the RealWorld repo.

Status

With the caveat that the Authorization header format is slightly different, this is done:

┌─────────────────────────┬──────────┬──────────┐
│                         │ executed │   failed │
├─────────────────────────┼──────────┼──────────┤
│              iterations │        1 │        0 │
├─────────────────────────┼──────────┼──────────┤
│                requests │       31 │        0 │
├─────────────────────────┼──────────┼──────────┤
│            test-scripts │       46 │        0 │
├─────────────────────────┼──────────┼──────────┤
│      prerequest-scripts │       17 │        0 │
├─────────────────────────┼──────────┼──────────┤
│              assertions │      280 │        0 │
├─────────────────────────┴──────────┴──────────┤
│ total run duration: 18s                       │
├───────────────────────────────────────────────┤
│ total data received: 5.77KB (approx)          │
├───────────────────────────────────────────────┤
│ average response time: 25ms                   │
└───────────────────────────────────────────────┘

TODO

  • I'm not thrilled by that average response time, this is over localhost ... working with quite empty tables.

Getting started

  1. Use Nix to get all the Haskell package and application dependencies you need.
$ nix-shell
  1. Create .envrc from example and allow contents
$ cp .envrc.example .envrc
$ direnv allow
  1. Setup the database.
$ database/scripts/setup
  1. Run the test suite.
$ cabal new-test

You can run these in a watch mode using ghcid:

$ dev/watch-tests

Which might look something like this:

asciicast

  1. Run the app.
$ cabal new-run exe:realworld-conduit
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].