BrewQuest is a web application designed to bring coffee enthusiasts closer to their perfect cup and help them explore Berlin's vibrant coffee scene. Whether you’re searching for a personalized coffee recommendation or want to discover featured coffee shops, BrewQuest has you covered.
- Take a quiz to get personalized coffee recommendations based on:
- Tasting preferences (fruity, nutty, chocolatey).
- Roast levels (light, medium, dark).
- Brewing preferences (espresso, filter, pour-over, etc.).
- Explore featured coffee shops in Berlin.
- View shop details like location, description, and specialties.
- Discover 10 curated coffee shops with exclusive selections.
- Interactive map to locate coffee bars in Berlin.
- Visualize coffee shop details like their offerings and proximity.
- Learn about coffee brewing methods, bean origins, and roastery profiles.
- React (with TypeScript) for a scalable user interface.
- React Router for client-side routing.
- TailwindCSS for modern, responsive styling.
- Node.js with Express for the REST API.
- TypeScript for robust type checking and maintainable code.
- Supabase:
- Serves as the backend-as-a-service for database management.
- Handles authentication and API integration.
BrewQuest/
├── client/ # React frontend
│ ├── src/ # Frontend source code
│ └── public/ # Static assets
├── server/ # Node.js backend
│ ├── src/ # Backend source code
│ ├── routes/ # Express routes
│ └── .env # Backend environment variables
└── package.json # Root scripts for concurrent development
- Node.js (v14 or later)
- npm (v6 or later)
-
Clone the repository:
git clone https://github.com/your-username/brewquest.git cd brewquest
-
Install dependencies for both client and server:
npm install cd client && npm install cd ../server && npm install
-
Start the Server: Navigate to the
server
directory and start the backend:npm run dev
-
Start the Client: Navigate to the
client
directory and start the React frontend:npm start
-
Start Both Simultaneously: From the root directory:
npm start
This will concurrently run the client on
http://localhost:3000
and the server onhttp://localhost:5858
.
Add the API URL to connect to the backend:
REACT_APP_API_URL=http://localhost:5858
Add the following variables:
PORT=5858
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_KEY=your-service-role-key
- GET /api/coffee-shops: Fetch all coffee shops.
- GET /api/coffee-shops/:id (optional for future): Fetch a specific coffee shop.
- Coffee Finder Quiz: Dynamically filter coffee recommendations based on user preferences.
- Coffee Map Integration: Use map services to provide location-based features.
- User Accounts: Allow users to save preferences and favorite shops.
This project is licensed under the MIT License - see the LICENSE file for details.