Skip to content

A RealWorld application built with Marten.

License

Notifications You must be signed in to change notification settings

martenframework/realworld

Repository files navigation

RealWorld Example App

CI CI

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

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

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

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

System requirements

Installation

If all the above system dependencies are properly installed on the target system, it should be possible to install the project using the following command:

$ make

This command will take care of the installation of the required dependencies (Crystal and Node.js) and will (i) build the development assets and (ii) setups the project's database using SQLite.

Running the development server

The development server can be started using the following command:

$ make server

The development server should be accessible at http://127.0.0.1:8000.

Frontend development

This project uses Gulp and Webpack to bundle the assets of the application. Client-side scripts are written using vanilla JS and the stylesheets used are the precompiled ones that are provided by the Realworld project. All the tools necessary to work on the assets of this project should've been installed when running make in the previous sections.

Client-side scripts are stored in the src/assets/build_dev folder. Whenever those scripts need to be recompiled, the following command can be used:

npm run gulp -- build

Finally, a Webpack dev server can also be launched in order to use hot reloading if necessary. To do so, the following command can be used:

npm run gulp -- webpack-dev-server

Note that the Marten development server should be started in another terminal after the Webpack dev server has been started.

Running the test suite

The test suite can be run using the following command:

$ make tests

Code quality checks can be triggered using the following command:

$ make qa

License

MIT. See LICENSE for more details.