Skip to content

threecgreen/vinoteca

Repository files navigation

vinoteca

CI

A wine purchase tracker and review app built with Rust and React with TypeScript. I created this project to give my dad a better way to track his wine purchases than the Excel spreadsheet he was using.

Built-With

  • Rocket
  • PostgreSQL
  • React
  • TypeScript
  • Materialize CSS
  • Chart.js

Building from source

  1. Clone the repository
    $ git clone https://github.com/threecgreen/vinoteca
    $ cd vinoteca
  2. Install rust via rustup if not already installed
    $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  3. Build the web server
    $ cargo build
  4. Generate contracts
    $ cargo run --bin gen_contracts
  5. Install JavaScript dependencies and create the webpack bundle
    $ npm install --save --no-optional
    $ npm run-script build
  6. Start the web server
    $ cargo run
  7. Navigate to localhost:8000. The service will run the necessary database migrations on startup.

Configuration

Configuration is managed via Rocket.toml.

Required configurations:

  • Postgres database
  • AWS S3 access keys

Optional configurations

  • Secret key for generating encrypted cookies
  • Log level
  • Number of worker threads

Acknowledgements

The background image on the main page was taken by CollideStorm