diff --git a/README.md b/README.md index 292f3d6..bcf53c1 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,65 @@ -# cooked - +# Cooked - A Generate Software Orientation Workshop + ![GitHub Actions CI Status](https://img.shields.io/github/actions/workflow/status/GenerateNU/cooked/ci.yaml?branch=main&logo=github&label=CI) ![License](https://img.shields.io/github/license/GenerateNU/cooked?label=License) - -Generate's engineering onboarding. +Welcome to the Fall 24 Software Orientation - a hackathon inspired workshop that will give you the opportunity to walk the basic stack of a typical Generate project. + +## Goal + +Teams of 8, over a 1.5 hour period, will collaborate to implement the backend and frontend components of a recipe application. +This repository, as is, provides the necessary foundation for all critical features that comprise the final deliverables. +Each team, at the end of the workshop, will be alloted 2 minutes to present their final product to a panel of judges who will grade based on the requirements and additional criteria listed below. + +Requirements: + +1. You must build two endpoints: **GET** (fetch) all recipes and **POST** (create) a recipe +2. You must implement a basic frontend (inspired, but not bound, by this [Figma](https://www.figma.com/design/FUc9oy4M56lHLYMGX7kOyZ/Engineering-Orientation?node-id=0-1&t=uy34xrVmav24AfgJ-1)) and pull data from the two aformentioned endpoints +3. Everyone must contribute (dock points if we notice people are sitting to the side) + +Additional Criteria: + +1. Humor - we all need a good laugh to get us through the first week of school +2. Additional Features - did your team create additional endpoints, enhance the frontend, etc. + +Final Note: + +- You will find a series of comments prefixed by **TODO** scattered across the repository. These indicate small tasks + where code should be written to meet the requirements. + +## Tech Stack + +- The backend is written in **Go** and uses [**Fiber**](https://docs.gofiber.io/) as a web framework +- The frontend used **Next.js** (React framework) and **Tanstack Query** (formerly React Query) for communicating with the backend +- The database is a **Postgres** instance hosted on Supabase and uses [**sqlx**](https://github.com/jmoiron/sqlx) for transactions ## Usage 1. [Install Nix](https://zero-to-nix.com/start/install) -2. Activate the devshell: +2. Navigate to the repository in your terminal (use the `cd` command!) +3. Activate the development environment by running the following: - - ```sh - nix develop --impure - ``` - + ```sh + nix develop --impure + ``` + + You will now have all of the tools you need to start building, including **Go**, **Node.js**, and **pnpm**! + +4. Notice the list of commands available within the development environment. These are designed to simplify the development process. + - Run the following to start the backend server: + + ```sh + backend-dev + ``` + + - Run the following to start the frontend server: + + ```sh + frontend-dev + ``` + + - Run the following to display a list of available commands: + + ```sh + env-help + ``` diff --git a/flake.lock b/flake.lock index 4077483..736709a 100644 --- a/flake.lock +++ b/flake.lock @@ -74,11 +74,11 @@ "pre-commit-hooks": "pre-commit-hooks" }, "locked": { - "lastModified": 1724504184, - "narHash": "sha256-gP6000c2+zHKJHAxCD3BftvAjmb4CPAZamRAHNxN2MM=", + "lastModified": 1725637114, + "narHash": "sha256-+hsiHWbqkS098soB1o4URP3frnjhoRvyVfWs6byv4Zk=", "owner": "cachix", "repo": "devenv", - "rev": "51338b58fd666f448db7486ec145dbe52db9b829", + "rev": "c31e347a96dbb7718a0279afa993752a7dfc6a39", "type": "github" }, "original": { @@ -185,11 +185,11 @@ ] }, "locked": { - "lastModified": 1725427015, - "narHash": "sha256-QHQmwXxM99m8OkfKm4oB77gN7wSlRRDySmdv5v7IF5Y=", + "lastModified": 1725638272, + "narHash": "sha256-5/YF6Y3V5F1ZaT0iCi1QlwB/ICi3rP/Czm+hsFI1aBg=", "owner": "jtrrll", "repo": "env-help", - "rev": "7ab90d9d52120c69245feea69ca012de21dc1458", + "rev": "7281c52c5441e5fbc36c1e40a2ed172b180da8f2", "type": "github" }, "original": { @@ -285,11 +285,11 @@ "nixpkgs-lib": "nixpkgs-lib_2" }, "locked": { - "lastModified": 1722555600, - "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", + "lastModified": 1725234343, + "narHash": "sha256-+ebgonl3NbiKD2UD0x4BszCZQ6sTfL4xioaM49o5B3Y=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "8471fe90ad337a8074e957b69ca4d0089218391d", + "rev": "567b938d64d4b4112ee253b9274472dc3a346eb6", "type": "github" }, "original": { @@ -603,14 +603,14 @@ }, "nixpkgs-lib_2": { "locked": { - "lastModified": 1722555339, - "narHash": "sha256-uFf2QeW7eAHlYXuDktm9c25OxOyCoUOQmh5SZ9amE5Q=", + "lastModified": 1725233747, + "narHash": "sha256-Ss8QWLXdr2JCBPcYChJhz4xJm+h/xjl4G0c0XlP6a74=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/a5d394176e64ab29c852d03346c1fc9b0b7d33eb.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/a5d394176e64ab29c852d03346c1fc9b0b7d33eb.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz" } }, "nixpkgs-regression": { @@ -727,11 +727,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1724395761, - "narHash": "sha256-zRkDV/nbrnp3Y8oCADf5ETl1sDrdmAW6/bBVJ8EbIdQ=", + "lastModified": 1725534445, + "narHash": "sha256-Yd0FK9SkWy+ZPuNqUgmVPXokxDgMJoGuNpMEtkfcf84=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ae815cee91b417be55d43781eb4b73ae1ecc396c", + "rev": "9bb1e7571aadf31ddb4af77fc64b2d59580f9a39", "type": "github" }, "original": {