diff --git a/README.md b/README.md index 8cf13da..c15de64 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,52 @@ -# Brew Application +
+
+
+ A beautiful, offline-first coffee logbook and brewing companion designed to track, refine, and perfect your daily coffee rituals. +
+ ++ A fully functioning instance of the application is available at brew.adityagupta.dev. +
+ + + +## Screenshots + ++ + Screenshots coming soon! +
+ + + +## Features + +- **Coffee Bean Inventory & Recipes**: Keep track of your coffee beans, including roasters, roast levels, origins, processing methods, and personal tasting notes. Save custom brewing parameters for every bean. +- **Detailed Brew Logging**: Record every brewing session with precise details: brew method (Pour Over, Espresso, Cold Brew, etc.), grind size, water temperature, brew ratio, and brew time. Grade your cups with detailed taste notes and reviews. +- **Offline-First Sync Engine**: Fully functional offline using local browser storage (`localStorage`). Automatically merges and syncs to a PostgreSQL database via the Express backend when connectivity is restored, using a conflict-resolution system. +- **Mobile & PWA Ready**: Designed with a sleek, mobile-first responsive layout. Features a custom install prompt modal (including iOS specific guidelines) so you can run it as a standalone app. +- **Modern Dark & Light Mode**: Clean, warm, custom-tailored interface matching the espresso color palette. Persistent theme switching based on user preference. +- **Secure User Accounts**: Personal user profiles backed by JSON Web Tokens (JWT) and `bcrypt` password hashing, plus backend API rate-limiting. ## Architecture Overview @@ -14,8 +60,6 @@ The codebase is split into two main sections: - [server/index.js](file:///home/sortedcord/Projects/brew/server/index.js) (Express application setup, routes, and authentication middleware) - [server/db.js](file:///home/sortedcord/Projects/brew/server/db.js) (PostgreSQL connection and table initialization) ---- - ## Prerequisites Make sure you have the following installed on your system: @@ -23,15 +67,15 @@ Make sure you have the following installed on your system: - **npm** (v9.x or higher) - **PostgreSQL** (v14 or higher) ---- +## Getting Started -## 1. Database Setup (PostgreSQL) +### 1. Database Setup (PostgreSQL) You need a running PostgreSQL database instance. Follow the steps below based on your operating system: -### Installing PostgreSQL +#### Installing PostgreSQL -#### Linux (Debian/Ubuntu) +##### Linux (Debian/Ubuntu) ```bash sudo apt update sudo apt install postgresql postgresql-contrib @@ -42,18 +86,16 @@ sudo systemctl start postgresql sudo systemctl enable postgresql ``` -#### macOS (using Homebrew) +##### macOS (using Homebrew) ```bash brew install postgresql brew services start postgresql ``` -#### Windows +##### Windows Download and run the interactive installer from the [Official PostgreSQL Downloads page](https://www.postgresql.org/download/windows/). ---- - -### Creating the Database and User +##### Creating the Database and User 1. Log into the PostgreSQL interactive terminal as the superuser `postgres`: ```bash @@ -87,9 +129,7 @@ Download and run the interactive installer from the [Official PostgreSQL Downloa > [!NOTE] > Database tables (such as `users`) are initialized automatically when you start the backend server, as defined in [server/db.js](file:///home/sortedcord/Projects/brew/server/db.js). ---- - -## 2. Backend Setup +### 2. Backend Setup 1. Navigate to the backend directory: ```bash @@ -120,9 +160,7 @@ Download and run the interactive installer from the [Official PostgreSQL Downloa Server running on port 5000 ``` ---- - -## 3. Frontend Setup +### 3. Frontend Setup 1. Open a new terminal window/tab and navigate to the project root directory: ```bash @@ -141,8 +179,6 @@ Download and run the interactive installer from the [Official PostgreSQL Downloa 4. Open your browser and navigate to the local URL printed in the console (usually `http://localhost:5173`). ---- - ## Production Deployment When deploying the Brew application to a production environment, follow these guidelines for security, reliability, and performance: @@ -205,4 +241,3 @@ When deploying the Brew application to a production environment, follow these gu > [!IMPORTANT] > **HTTPS Required for PWAs**: For security reasons, web browsers will only install Progressive Web Apps (PWAs) and register Service Workers when served over a secure connection (`HTTPS`). Make sure to set up an SSL certificate (e.g., via Let's Encrypt / Certbot) for your production deployment domain. Local development on `localhost` or `127.0.0.1` is exempt and will work over HTTP. -