HobbyHatch is a web platform designed to help individuals connect through shared interests by discovering, joining, or creating local hobby-based groups. Whether it’s book clubs, hiking crews, painting circles, or any other passion-driven activity, HobbyHatch aims to build vibrant, interest-focused communities that foster real-life social engagement and meaningful connections.
This platform addresses the growing need for offline community and social interaction in an increasingly digital world. By offering an intuitive and accessible space for users to explore hobbies and meet like-minded people nearby, HobbyHatch empowers users to turn their personal interests into shared experiences.
- Hobby Discovery
- Browse a wide range of hobbies (e.g., photography, hiking, chess, painting).
- Filter hobbies by category, popularity, or trending status.
- Local Group Finder
- Search for nearby groups based on location and hobby.
- View group details including member count, activity frequency, and upcoming events.
- Group Creation & Management
- Users can start new hobby groups with customizable settings.
- Community Interaction
- Reaction and comment features on posts and event pages.
- Mobile-Optimized & Responsive Design
- Seamless experience across devices.
To get the backend server up and running on your local machine, follow these simple steps.
Make sure you have Node.js and npm installed. MongoDB should also be installed and running.
- Node.js & npm:
npm install npm@latest -g
- MongoDB: Install MongoDB
- Create a
.envfile in the root of your project and add your environment variables:PORT=3000 DB_USER=your_mongodb_username DB_PASS=your_mongodb_password
PORT: The port your backend server will run on (defaulting to 3000 if not specified).DB_USER&DB_PASS: Your MongoDB Atlas cluster username and password.NODE_ENV: Set toproductionin production environments for secure cookie handling (secureandsameSitesettings).
- Start the backend server:
The server will typically run on the port specified in your
npm start
.envfile (e.g.,http://localhost:3000).
Here's a detailed overview of the API endpoints provided by this backend:
| Method | Endpoint | Description | Authentication |
|---|---|---|---|
GET |
/user |
Retrieves a list of all users | Public |
GET |
/user/:id |
Retrieves user details, including a list of enrolled course IDs from the enrollments collection | Privet |
POST |
/user |
Creates a new user in the database | Public |
PATCH |
/user |
Update user data | Privet |
GET |
/hobbies |
Retrieves a list of all hobbies | Public |
GET |
/hobbies/:id |
Retrieves hobbies details, including a list of enrolled course IDs from the enrollments | Public |
POST |
/hobbies |
Creates new hobbies | Public |
PUT |
/hobbies/:id |
Updates the hobbies | Privet |
DELETE |
/hobbies/:id |
Delete a particuler hobbie | Privet |
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Syed Mohiuddin Meshal - syedmohiuddinmeshal24@gmail.com