webapp

Crates.iowebapp
lib.rswebapp
version1.0.0
sourcesrc
created_at2018-06-09 10:27:19.806577
updated_at2019-07-05 13:33:18.377575
descriptionA web application completely written in Rust
homepagehttps://github.com/saschagrunert/webapp.rs
repositoryhttps://github.com/saschagrunert/webapp.rs
max_upload_size
id69315
size337,313
Sascha Grunert (saschagrunert)

documentation

https://docs.rs/webapp

README

WebApp.rs

CircleCI Coverage Deps Docs master Docs release Docs release backend Docs release frontend License MIT Crates.io Crates.io Crates.io

A web application completely written in Rust

Target of this project is to write a complete web application including backend and frontend within Rust.

Blog Posts

  1. A Web Application completely in Rust.
  2. Lessons learned on writing web applications completely in Rust.

Build

The following build dependencies needs to be fulfilled to support the full feature set of this application:

The app consist of a frontend and a backend. For getting started with hacking, the backend can tested via make run-backend, whereas the frontend can be tested with make run-frontend. You can adapt the application configuration within Config.toml if needed.

Run

If both, the backend and frontend are running, you can visit the web application at http://127.0.0.1:8000. After the successful loading of the application you should see an authentication screen like this:

authentication screen

Now you are able to login with a matching username and password combination like me (username) and me (password). There is currently no further user authentication yet, but non matching combination will result in an authentication failure. After the successfully login you should be able to see the content of the application:

content screen

The authentication should persist, even after a manual page reload. Logging out of the application via the logout button should also work as intended.

Control Flow

The complete control flow of the application looks like this:

control screen

Deploy

To deploy the application as a docker image, simply run:

make deploy

After that you can run the application side by side with a PostgreSQL container via:

make run-app

The application should now be accessible at http://127.0.0.1:30080.

Contributing

You want to contribute to this project? Wow, thanks! So please just fork it and send me a pull request.

Commit count: 1803

cargo fmt