{"id":28311930,"url":"https://github.com/jasjeev013/neighbourly-backend","last_synced_at":"2026-02-17T14:34:36.119Z","repository":{"id":245730122,"uuid":"819053681","full_name":"jasjeev013/neighbourly-backend","owner":"jasjeev013","description":"Neighbourly is a community engagement platform that enables people to create, publish, and participate in a wide range of events - from social services and technical hackathons to contests, quizzes, and national events. This repository contains the backend API powering the Neighbourly platform.","archived":false,"fork":false,"pushed_at":"2025-04-03T07:10:47.000Z","size":4011,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-23T09:47:19.588Z","etag":null,"topics":["api","authentication","authorization","cloudinary","expressjs","jwt","multer","nodejs","platform","vercel"],"latest_commit_sha":null,"homepage":"https://neighbourly-backend.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jasjeev013.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-23T16:39:34.000Z","updated_at":"2025-04-03T07:23:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"28c4b246-c1dd-468d-bacb-af2ef6a049ea","html_url":"https://github.com/jasjeev013/neighbourly-backend","commit_stats":null,"previous_names":["jasjeev013/neighbourly-backend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jasjeev013/neighbourly-backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasjeev013%2Fneighbourly-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasjeev013%2Fneighbourly-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasjeev013%2Fneighbourly-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasjeev013%2Fneighbourly-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jasjeev013","download_url":"https://codeload.github.com/jasjeev013/neighbourly-backend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasjeev013%2Fneighbourly-backend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29547458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T14:33:00.708Z","status":"ssl_error","status_checked_at":"2026-02-17T14:32:58.657Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","authentication","authorization","cloudinary","expressjs","jwt","multer","nodejs","platform","vercel"],"created_at":"2025-05-24T14:17:59.879Z","updated_at":"2026-02-17T14:34:36.111Z","avatar_url":"https://github.com/jasjeev013.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Neighbourly: Let's Connect Communities - Backend\n\n![Neighbourly Banner](./images/bg-image.png) \n\n## 🌟 About The Project\n\nNeighbourly is a community engagement platform that enables people to create, publish, and participate in a wide range of events - from social services and technical hackathons to contests, quizzes, and national events. This repository contains the backend API powering the Neighbourly platform.\n\n**Key Features:**\n- User authentication and authorization (JWT)\n- Event management system\n- Volunteer registration and tracking\n- Organization profiles\n- Project and event categorization\n- Review and rating system\n- Image uploads via Cloudinary\n\n---\n\n## 📋 Table of Contents\n1. [Tech Stack](#-tech-stack)\n2. [API Documentation](#-api-documentation)\n3. [Installation](#-installation)\n4. [Configuration](#-configuration)\n5. [Directory Structure](#-directory-structure)\n6. [Database Schema](#-database-schema)\n7. [Screenshots](#-screenshots)\n8. [Contributing](#-contributing)\n9. [Contact](#-contact)\n\n---\n\n## 🛠 Tech Stack\n\n### Backend\n- **Node.js** - Runtime environment\n- **Express** - Web framework\n- **MongoDB** - Database\n- **Mongoose** - ODM for MongoDB\n- **JWT** - Authentication\n- **Cloudinary** - Image storage\n- **Multer** - File upload handling\n\n### Development Tools\n- **Nodemon** - Development server\n- **Postman** - API testing\n- **Vercel** - Deployment\n\n---\n\n## 📚 API Documentation\n\n### Base URL\n`https://neighbourly-backend.vercel.app/`\n\n### Authentication\n| Endpoint          | Method | Description                | Auth Required |\n|-------------------|--------|----------------------------|---------------|\n| `/register`  | POST   | Register new user          | No            |\n| `/login`     | POST   | Login user                 | No            |\n\n### Events\n| Endpoint                 | Method | Description                          | Auth Required       |\n|--------------------------|--------|--------------------------------------|---------------------|\n| `/events`                | GET    | Get all events                       | No                  |\n| `/events`                | POST   | Create new event                     | Organization        |\n| `/events/:id`            | GET    | Get event by ID                      | No                  |\n| `/events/:id`            | PUT    | Update event                         | Organization        |\n| `/events/:id`            | DELETE | Delete event                         | Organization        |\n| `/events/projects/:id`   | GET    | Get events by project ID             | No                  |\n\n*(Complete API documentation available in [All Routes.docx](./All%20Routes.docx)*\n\n---\n\n## 💻 Installation\n\n### Prerequisites\n- Node.js (v14+)\n- MongoDB Atlas account or local MongoDB installation\n- Cloudinary account (for image storage)\n\n### Setup Instructions\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/jasjeev013/neighbourly-backend.git\n   cd jasjeev013-neighbourly-backend\n   ```\n\n2. Install dependencies:\n   ```bash\n   npm install\n   ```\n\n3. Create a `.env` file in the root directory with the following variables:\n   ```\n   MONGODB_URI=your_mongodb_connection_string\n   JWT_SECRET=your_jwt_secret_key\n   CLOUDINARY_CLOUD_NAME=your_cloudinary_name\n   CLOUDINARY_API_KEY=your_cloudinary_key\n   CLOUDINARY_API_SECRET=your_cloudinary_secret\n   PORT=5000\n   ```\n\n4. Start the development server:\n   ```bash\n   npm start\n   ```\n\nThe API will be available at `http://localhost:5000`\n\n---\n\n## ⚙ Configuration\n\n### Environment Variables\n| Variable Name               | Description                          | Required |\n|-----------------------------|--------------------------------------|----------|\n| `MONGODB_URI`               | MongoDB connection string           | Yes      |\n| `JWT_SECRET`                | Secret key for JWT tokens           | Yes      |\n| `CLOUDINARY_CLOUD_NAME`     | Cloudinary cloud name               | Yes      |\n| `CLOUDINARY_API_KEY`        | Cloudinary API key                  | Yes      |\n| `CLOUDINARY_API_SECRET`     | Cloudinary API secret               | Yes      |\n| `PORT`                      | Server port (default: 5000)         | No       |\n\n---\n\n## 📂 Directory Structure\n\n```\njasjeev013-neighbourly-backend/\n├── config/\n│   ├── cloudinary.js      # Cloudinary configuration\n│   └── multer.js          # File upload middleware\n├── images/                # Uploaded images (development)\n├── middleware/\n│   └── auth.js            # Authentication middleware\n├── models/\n│   ├── category.js        # Event categories\n│   ├── event.js           # Events model\n│   ├── location.js        # Locations model\n│   ├── organization.js    # Organizations model\n│   ├── project.js         # Projects model\n│   ├── review.js          # Reviews model\n│   ├── user.js            # Users model\n│   ├── volunteer.js       # Volunteers model\n│   └── volunteering.js    # Volunteering model\n├── routes/\n│   ├── auth.js            # Authentication routes\n│   ├── categories.js      # Category routes\n│   ├── events.js          # Event routes\n│   ├── locations.js       # Location routes\n│   ├── organizations.js   # Organization routes\n│   ├── profile.js         # Profile routes\n│   ├── projects.js        # Project routes\n│   ├── reviews.js         # Review routes\n│   ├── users.js           # User routes\n│   ├── volunteering.js    # Volunteering routes\n│   └── volunteers.js      # Volunteer routes\n├── index.js               # Main application file\n├── package.json           # Project dependencies\n└── vercel.json            # Vercel deployment config\n```\n\n---\n\n## 🗃 Database Schema\n\n\u003c!-- ![ER Diagram](/path/to/er-diagram.png) *(Replace with database schema image)* --\u003e\n\nKey Models:\n- **Users**: Base user accounts (volunteers/organizations)\n- **Volunteers**: Extended volunteer profiles\n- **Organizations**: Extended organization profiles\n- **Projects**: Community projects\n- **Events**: Specific project events\n- **Volunteering**: Volunteer-event relationships\n- **Reviews**: Volunteer feedback\n\n---\n\n## 📸 Screenshots\n\n### API Endpoints\n![API Endpoints](./images/postman.png) \n\n### Database Models\n![Database Models](./images/mongoDB.png) \n\n### API Working\n![Api Working](./images/api.png) \n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions! Please follow these steps:\n\n1. Fork the project\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n---\n\n\n\n## 📧 Contact\n\n**Jasjeev**  \n- GitHub: [@jasjeev013](https://github.com/jasjeev013)\n- Email: jasjeev99@gmail.com\n\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasjeev013%2Fneighbourly-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjasjeev013%2Fneighbourly-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasjeev013%2Fneighbourly-backend/lists"}