NZ Community Gardens

GitHub
GitHub

React with TypeScript, Tailwind CSS, and Vite. It uses the Google Maps API (through Vis.gl) and Supercluster. The backend built with Express and MongoDB, using Mongoose for models, JWT for authentication, bcrypt for password hashing, and Google Cloud Storage for hosting garden images.

NZ Community Gardens - React.js Tailwind CSS MongoDB Image

The main map loads all gardens as GeoJSON and clusters them dynamically as you zoom in and out. Each marker represents a garden, and clicking one opens a sliding drawer showing more details.

NZ Community Gardens - React.js Tailwind CSS MongoDB Image

Each garden has its own page that pulls live data from MongoDB.

NZ Community Gardens - React.js Tailwind CSS MongoDB Image
NZ Community Gardens - React.js Tailwind CSS MongoDB Image
NZ Community Gardens - React.js Tailwind CSS MongoDB Image

Once logged in, users can add new gardens directly from the map. Photos are uploaded to Google Cloud Storage.

NZ Community Gardens - React.js Tailwind CSS MongoDB Image
NZ Community Gardens - React.js Tailwind CSS MongoDB Image

Login and registration are handled through a simple JWT setup. Tokens are stored locally, and protected routes ensure only logged-in users can add or edit gardens.

NZ Community Gardens - React.js Tailwind CSS MongoDB Image