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.
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:
- You must build two endpoints: GET (fetch) all recipes and POST (create) a recipe
- You must implement a basic frontend (inspired, but not bound, by this Figma) and pull data from the two aformentioned endpoints
- Everyone must contribute (dock points if we notice people are sitting to the side)
Additional Criteria:
- Humor - we all need a good laugh to get us through the first week of school
- 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.
- The backend is written in Go and uses Fiber 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 for transactions
-
Navigate to the repository in your terminal (use the
cd
command!) -
Activate the development environment by running the following:
nix develop --impure
You will now have all of the tools you need to start building, including Go, Node.js, and pnpm!
-
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:
backend-dev
-
Run the following to start the frontend server:
frontend-dev
-
Run the following to display a list of available commands:
env-help
-