snowmang1 / culinary_ocean

A website to share recipes in small groups like family's and friend groups. Similar to a dynamic cookbook kept online.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Culinary Ocean

Google cloud url

  • http://34.125.60.138:80/
  • note: this url will take you to the hosted website, however there is an error in the way that actix is handling 404's on the cloud. This error is causing the website to be completely blank and unusable.

To view website locally

  • pull the github branch trunk
git pull git@github.com:snowmang1/culinary_ocean.git
  • from the parent dir of culinary ocean build and run the docker instance with docker compose
docker-compose build && docker-compose up

Core attributes

  • recipe database, cookbook social network.
  • individual accounts for each person.
  • family/friend groups.
  • data: recipes, profiles, food pantry.

Requirements

  • use Vue.js on all pages to auto update
  • use django to manage persisting data
  • use foundation to style
  • use rust wasm for image compression
  • use Docker for hosting

Stack

  • Backend: actix-web + Docker + rust-trunk
  • Middleware: actix-web/rust
  • Frontend: rust-yew + tailwindcss

Diagrams

database model using StarUML

Model DB in StarUML

Wireframe website using draw.io

  • DashBoard Wireframing Dashboard

  • Login Wireframing Login

  • Account Account Page

Roadmap

Phase 1

  • Login page built in yew
  • actix hosting yew login page

Phase 2

  • actix DB
  • yew communicating with actix DB
  • auth setup for yew login page

Phase 3

  • yew account page with all information shown for user
  • actix DB hosting information in sqlite DB for user

Phase 4

  • yew user Dashboard
  • actix DB for hosting Dashboard

Phase 5

  • yew user upload for recipes
  • actix upload recipe data to DB

Phase 6

  • tailwindcss complete styling for all pages

Phase 7

  • adaptive UI for Dashboard

Phase 8

  • adaptive UI for Login

Development

  • I use cargo-make to compile there is an easy way to utilize my pipeline
  • make sure to be in the app dir this is where development is done

building

  • step 1: command cargo make --makefile main_make.toml build
    • this is for testing and build project

Running

  • step 1: command cargo make --makefile main_make.toml run
    • runs all rust unit test your build
    • uses trunk to build wasm in frontend dir
    • wasm is auto transferd to backend
    • backend will compile and run unit tests
    • backend will then start the actix server at here

About

A website to share recipes in small groups like family's and friend groups. Similar to a dynamic cookbook kept online.


Languages

Language:JavaScript 35.8%Language:CSS 34.5%Language:Rust 27.9%Language:HTML 1.0%Language:Shell 0.6%Language:Dockerfile 0.3%