GithubHelp home page GithubHelp logo

cookie-cutter's Introduction

RealWorld Example App

CircleCI for pyramid-realworld-example-app (master branch) Test coverage (master branch) Type Hints coverage (master branch) Supported Python versions License: MIT Built by these great folks! Talk to us in #pyramid on Freenode IRC

Pyramid codebase containing real world examples (CRUD, authentication, authorization, advanced patterns, and so on) that adhere to the RealWorld specification and API.

Demos

This is deployed on Heroku and is configured to automatically sleep after an hour of inactivity. If you get Application Error, refresh again in a minute or two.

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

We've gone to great lengths to adhere to the Pyramid community style guides and best practices. You are encouraged to use it as a scaffold/template for your next Pyramid project.

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

How it works

The application is built with Pyramid, using pyramid_openapi3 for request/response validation and pyramid_deferred_sqla for PostgreSQL integration. It is deployed to Heroku.

Pyramid serves one of the RealWorld.io frontends (Elm) on root, so it is easier to understand how things fit together. The frontend is interchangeable. You can use any RealWorld.io frontend.

Getting started

To set up your development environment, there are some dependencies you need to install on your system. You can either install them manually, or use Nix and direnv to install them automatically (except Docker which you need to install manually).

First ensure that you have Docker installed on your system. Then choose one option to install pre-requisites.

Option 1: Install pre-requisites manually

Activate the virtual environment, then continue to Install RealWorld Example App.

If you have any dependency related issue, check out ./shell.nix for the specific version of dependencies.

Option 2: Install pre-requisites using Nix

Install and Run RealWorld Example App

Docker should be running. Then you can run:

$ cd ~/projects
$ git clone https://github.com/teamniteo/pyramid-realworld-example-app.git
$ cd pyramid-realworld-example-app
$ make install
$ make start-pgsql
$ make devdb
$ make run

Now point your browser to:

To run unit tests, mypy typing checker and flake8 linter:

$ make tests

To stop Docker and clean the container, you can run:

$ make stop-pgsql
$ make clean-pgsql

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.