A community and neighborhood platform built with the MERN stack. Users discover businesses, browse events, and business owners can register their listing through an authenticated form.
Built a full MERN application with authenticated business listing submission, category-based filtering, and a responsive layout optimized for mobile use.

Most small local businesses in a neighborhood have no digital presence. Residents rely on word of mouth to find services. There's no single place to discover businesses, see upcoming events, or register a new listing.
React SPA with React Router v6. Context API holds the auth state (token + user). Tailwind CSS for responsive layout across all screen sizes.
Express.js with separate route modules: /api/businesses, /api/events, /api/auth. express-validator validates POST body before DB write.
MongoDB with two main collections: businesses and events. Mongoose schemas enforce field types and required fields at the ORM level.
The client only fetches listings matching the current filter, not the full dataset. This keeps the API response payload small on mobile connections.
JWT validated on all write routes (POST, PATCH). Owners can only modify listings where the ownerId matches their token userId — enforced in the route handler.
Business listings don't have complex relationships — each document can store all the business info (name, category, hours, contact) in one place. A document store is a natural fit.
No enforced referential integrity. If a user account is deleted, their business listings remain orphaned in the collection.
With a large number of listings, returning everything to the client and filtering in JavaScript would be wasteful. The API accepts a category query param and filters at the database level.
Regex queries on unindexed fields perform a full collection scan. Adding an index on the category field would be the next step for scalability.
Server-side filtering is always preferable to loading everything and filtering on the client. Even for small datasets, it's the right habit and the architecture that scales.