2025-03-13 22:31:10 +01:00
2025-03-10 00:24:26 +01:00
2025-03-10 00:24:26 +01:00
2025-03-11 13:35:25 +01:00
2025-03-10 00:24:26 +01:00
2025-03-10 00:24:26 +01:00
2025-03-10 00:24:26 +01:00

Freedge

Freedge is a web application that generates personalized recipes based on the ingredients available in the user's fridge. The application is built on a modern fullstack architecture with a lightweight and fast backend, an integrated database, and a smooth user interface.

Tech Stack

  • Frontend: React.js + TailwindCSS + ShadCN
  • Backend: Fastify + Prisma + SQLite
  • AI: ChatGPT API for recipe generation
  • Payments: Stripe (subscriptions)

Project Structure

freedge/
├── frontend/         # React frontend application
│   ├── public/       # Static assets
│   └── src/          # Source code
│       ├── components/ # Reusable UI components
│       ├── pages/    # Application pages
│       ├── services/ # API service integrations
│       └── utils/    # Utility functions
│
├── backend/          # Fastify API server
│   ├── prisma/       # Prisma schema and migrations
│   └── src/          # Source code
│       ├── routes/   # API route definitions
│       ├── controllers/ # Request handlers
│       ├── services/ # Business logic
│       └── models/   # Data models
│
└── README.md         # Project documentation

Getting Started

Prerequisites

  • Node.js (v16+)
  • npm or yarn
  • SQLite

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/freedge.git
    cd freedge
    
  2. Install backend dependencies

    cd backend
    npm install
    
  3. Set up environment variables

    • Create a .env file in the backend directory (or modify the existing one)
    • Add your OpenAI API key and Stripe keys
  4. Set up the database

    npx prisma migrate dev --name init
    npx prisma generate
    
  5. Install frontend dependencies

    cd ../frontend
    npm install
    
  6. Start the development servers

    In the backend directory:

    npm run dev
    

    In the frontend directory:

    npm run dev
    
  7. Open your browser and navigate to http://localhost:5173

Features

  • User authentication with JWT
  • Ingredient management
  • AI-powered recipe generation
  • Subscription management with Stripe
  • Recipe history

API Routes

All routes are prefixed with /api.

Authentication

  • POST /auth/register - Create a new user account
  • POST /auth/login - Login and get JWT token

Profile Management

  • GET /profile - Get user profile
  • PUT /profile - Update user profile

Ingredients

  • GET /ingredients - Get user's ingredients
  • POST /ingredients - Add a new ingredient
  • DELETE /ingredients/:id - Delete an ingredient

Recipes

  • POST /recipes/generate - Generate a recipe based on ingredients
  • GET /recipes/history - Get recipe history
  • GET /recipes/:id - Get a specific recipe

Subscriptions

  • POST /subscriptions/create-checkout-session - Create a Stripe checkout session
  • GET /subscriptions/status - Get subscription status

License

MIT

Description
No description provided
Readme 2.3 MiB
Languages
TypeScript 96.6%
CSS 1.7%
Shell 0.6%
Dockerfile 0.6%
JavaScript 0.3%
Other 0.2%