Skip to content

Conversation

@KidFromCalifornia
Copy link

@KidFromCalifornia KidFromCalifornia commented Aug 31, 2025

deplpyment
Netlify : https://stockholmscoffeeclub.netlify.app/
render: srv-d2ncn3f5r7bs73fdhe9g

and soon at Stockholmscoffeeclub.com

(work in progress as of 01092025)

Stockholm Coffee Club - Final Project
A full-stack coffee discovery app for Stockholm's specialty coffee scene built with modern web technologies.

Tech Stack
Frontend: React 18, Material-UI, MapLibre GL, React Router, Zustand, Styled Components, Vite

Backend: Node.js, Express, MongoDB, Mongoose, JWT Authentication, bcryptjs, Zod validation

External Libraries: Material-UI for UI components, MapLibre GL for interactive maps, SweetAlert2 for alerts, React Icons, WebFontLoader, RC Drawer for mobile navigation

Development Tools: Vite build tool, ESLint, Prettier, Nodemon, Babel

Deployment: Render cloud platform, GitHub repository

Features

  • Interactive map of Stockholm coffee shops with filtering
  • User authentication and profiles
  • Coffee tasting notes and reviews
  • Cafe submission system with admin approval
  • Search and discovery functionality
  • Responsive mobile-first design
  • Admin dashboard for content management
  • Architecture
  • Full-stack MERN application with RESTful API design, component-based React frontend, and MongoDB database. Deployed as separate frontend and backend services on Render.

Built by Jonathan Hicks as Technigo Bootcamp final project.

…onnection, add user authentication, and create models/routes for cafes and submissions
…ssions and cafes, and implement seeding functionality for Stockholm cafes

- Deleted CafeSubmission model as it was no longer needed.
- Updated CoffeeTasting model to change user reference from 'user' to 'userId' and cafe reference from 'cafe' to 'cafeId'.
- Enhanced UserTastings routes to include additional cafe fields in population and improved error handling.
- Refactored cafeSubmissions routes to support pagination, filtering, and improved submission handling (approve/reject).
- Updated cafes routes to support advanced filtering, search suggestions, and nearby cafes functionality.
- Added seedCafes utility to populate the database with predefined Stockholm cafes and integrated it into the server.
…, improve search functionality, and update seed data for cafes and tastings
…ngs; update CoffeeTasting model to allow optional fields; enhance API documentation endpoint with detailed route information
feat: Create LoginForm component for user authentication with signup option

feat: Add NavBar component with search functionality and login/logout options

chore: Create empty NewCafeForm, TastingForm, AdminPage, CafePage, HomePage, TastingsPage, UserPage components

feat: Establish API service with functions for cafe and tasting data retrieval and user authentication
…ement metadata route for form options adding to dynamic opt
…ed enums declaration in metadata route; update TastingForm to improve UI and replace select inputs with range sliders for better user experience
… add MapPage component and update routing; replace HomePage with MapPage in navigation
…astingsPage to use fetch and invoke seedTastingNotes
…h username or email, and improve error messages

user is still not found
…se-insensitive username or email, add user ID to local storage, and implement tasting management features including deletion and editing
…for consistency and improve deletion logic. buttons visable
…, improve user experience, and update cafe model to support multiple locations and optional fields.
- Implemented a JWT decoding function with error handling for invalid tokens.
- Added a new CSS file for Leaflet map styles, including various UI components and responsive design adjustments.
…Cafes utility

fix: Update MapPage to conditionally render markers based on valid coordinates
… improve error handling

- Replaced Nominatim geocoding with OpenCage API in seedCafes.js
- Adjusted cache structure to store results from OpenCage
- Added dotenv configuration for API key management
- Updated geocoding logic to handle missing geometry and improved error messages
- Modified CafeSearchBar to use Zustand for state management
- Refactored LoginForm to utilize Zustand for error and loading states
- Cleaned up NavBar by removing unnecessary links
- Enhanced TastingForm to use Zustand for state management and improved data fetching
- Updated MapPage to use Zustand for cafes state and added loading logic
- Implemented search functionality in TastingsPage with pagination
- Added missing cafeId fix script for tastings based on neighborhood
- Introduced Zustand store for centralized state management across components
- Updated package.json to include Zustand dependency
…components

- Added seed script for tasting notes with detailed coffee information.
- Implemented user seeding script with hashed passwords for security.
- Created reusable Button, CheckboxInput, SelectInput, TextInput, and SwalAlertStyles components for consistent UI.
…ures

- Added functionality for toggling cafe submission forms and handling submissions.
- Implemented pagination and search filtering for user tastings.
- Introduced tab navigation for better organization of cafe submissions and tastings.
- Improved UI elements with tooltips and responsive design adjustments.
- Refactored tasting submission logic to streamline API interactions.
- Enhanced styling for FlipTastingCard and typography for better readability and aesthetics.
- Added aria-labels to IconButtons in DesktopNavBar and MobileBottomNav for better screen reader support.
- Wrapped Dialog components in ListItem for improved semantic structure in DesktopNavBar.
- Improved scrollbar visibility handling in MobileBottomNav.
- Updated color handling for specialty category in MapIcons based on theme mode.
- Adjusted typography variants and colors in MapLegend for better readability.
- Refined Popup styling in MapLibreMap for consistent design.
- Removed custom icon mapping in AlertContext to simplify Snackbar usage.
- Commented out axe-core accessibility testing in main.jsx for production builds.
- Added roles and aria-labels to lists and list items in AboutMePage and UserPage for enhanced accessibility.
- Implemented unique keys for mapped components in AdminPage and UserPage to prevent React warnings.
- Improved error handling in CafePage for better user feedback on network issues.
- Enhanced filtering logic in MapPage to dynamically compute filter options.
- Updated pagination logic in TastingsPage to implement a "Load More" feature instead of traditional pagination.
- Ensured unique keys for mapped tastings in TastingsPage to avoid potential rendering issues.
- Adjusted colors in theme for better contrast and accessibility.
…essibility

set up image build fro deployment
- Created a manifest.json file for PWA configuration, including app details and icons.
…yles, improve accessibility, and enhance visual hierarchy. Update NavigationItems to remove Add Cafe option for logged-in users. Enhance TastingsPage with Tooltip for better user experience. Adjust color scheme in theme for improved readability. Update component overrides in theme for consistent styling across Material-UI components. Refine typography settings for better text visibility. Fix Vite config to ensure proper asset handling.
…adingLogo component to use imported SVG assets
@JennieDalgren JennieDalgren self-assigned this Oct 15, 2025
Copy link
Contributor

@JennieDalgren JennieDalgren left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great job with this project!
You have managed to do a lot of featuers and really good job with the map.

A few things that I saw immediatly is the insufficent contrast between text and bg color in a few places.
image

And that you have gotten some node modules pushed in the backend repo.

Clean that up and change the colors to something more readable.

…earch and filter functionality in CafeSearchBar and NavigationFilters, update TastingForm heading, and adjust theme palette for better contrast in tasting cards
@JennieDalgren
Copy link
Contributor

Still some color issues
image

- Updated CafeSearchBar styles for better dark/light mode support.
- Modified ReusableFab to enhance button appearance and hover effects.
- Refined LoginForm with consistent color usage and loading state management.
- Enhanced NewCafeForm layout and styling for better user experience.
- Improved TastingForm with updated color themes and layout adjustments.
- Adjusted DesktopNavBar to remove lazy loading for forms, improving performance.
- Updated MapLegend styles for better visibility and interaction.
- Enhanced MapLibreMap popup styling for improved readability.
- Refactored AboutMePage for consistent theming and improved layout.
- Updated TastingsPage button styles for better visibility and interaction.
- Adjusted component styles in theme for better consistency across the application.
fix inconsitany in with thememode with formsand mobile filter dropdowns
@HIPPIEKICK
Copy link
Contributor

Contrast solved! Please remove the node modules though so we can review your backend code 😇

Copy link
Contributor

@JennieDalgren JennieDalgren left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great job with the project!
Great documentation, clean structured code, great features implemented:

Keep up the good work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants