A Django-powered backend API for a community platform that connects people who need help with those who can provide it. This repository contains the server-side implementation with Django templates for the web interface.
Note: Please note that the frontend interface is not part of this project and is maintained separately.
In today's fast-paced world, communities often feel disconnected despite being more digitally connected than ever. People struggle with everyday tasks while their neighbors have the exact skills and time to help, but there's no efficient way to bridge this gap .
- Isolation in Communities: People don't know their neighbors or available local resources
- Wasted Resources: Skills, time, and tools go unused while others desperately need them
- Barriers to Helping: No easy way to offer help or find people who need assistance
- Trust Issues: Lack of reputation systems makes people hesitant to help strangers
- Information Fragmentation: Help requests scattered across multiple platforms and social media
Neighborly creates a trusted, organized, and efficient ecosystem where:
- π Local Focus: Connect with people in your immediate community
- π Smart Matching: Find requests that match your skills and availability
- β Reputation System: Build trust through ratings and reviews
- π¬ Direct Communication: Seamless messaging between helpers and requesters
- π± Easy Access: Simple, intuitive platform that anyone can use
Neighborly was born from real experiences of community disconnection and the powerful impact of neighbor-to-neighbor help:
"When I moved to a new city during the pandemic, I struggled to find help moving furniture up three flights of stairs. Meanwhile, my neighbor, a college athlete, was bored at home and would have gladly helped for the cost of a pizza. We just had no way to connect." - Sarah, Neighborly Co-founder
"As a retired teacher, I have decades of tutoring experience but didn't know how to reach parents who needed help with their children's homework. Social media felt too impersonal, and formal tutoring services were too expensive for many families." - Community Beta Tester
We believe that every community has enough resources to solve its own problems - they just need to be connected efficiently. Our motivation stems from several core beliefs:
When neighbors help neighbors, it creates lasting relationships and more resilient communities. A single positive interaction can spark ongoing friendships and mutual support networks.
Helping others feels good and often comes back in unexpected ways. Neighborly creates a culture where giving and receiving help becomes natural and reciprocal.
Many people have valuable skills but lack traditional employment opportunities. Neighborly enables micro-entrepreneurship and skill monetization at the community level.
We're tired of technology that divides us. Neighborly uses modern tech to bring people together in meaningful, real-world ways.
By sharing resources and skills locally, we reduce waste, travel, and environmental impact while building more sustainable communities.
- Impact Stories: Every successful connection reminds us why this matters .
- Community Feedback: Users sharing how Neighborly changed their neighborhood experience .
- Growth Metrics: Seeing organic community growth and repeat usage .
- Problem Solving: Continuously improving how people connect and help each other .
To create a world where no one struggles alone with problems their community can solve, where everyone's skills are valued and utilized, and where technology strengthens rather than weakens human connections.
Neighborly isn't just a platform - it's a movement toward more connected, supportive, and resilient communities.
- Request Management API - Create, read, update, and delete help requests
- User Profile System - Comprehensive user profiles with stats and activity tracking
- Category & Location Management - Organized categorization and location-based filtering
- Status Tracking - Track request progress from open to completed
- Database Management - Robust data models and relationships
- Browse Requests - Server-rendered pages to discover help requests
- Post Requests - Form-based request submission with validation
- User Profiles - Template-based profile pages with stats and activity
- Admin Interface - Django admin for content management
- Responsive Design - Mobile-friendly template design
- π Errands & Shopping
- π Moving & Transportation
- π Pet Care
- π» Tech Help
- π Food & Meals
- πΆ Childcare
- π‘ Home & Garden
- β‘ Other
- Django 4.x - Python web framework
- Django Templates - Server-side rendering
- Django ORM - Object-relational mapping
- Django Admin - Built-in administration interface
- Django Forms - Form handling and validation
- SQLite - Development database (default)
- PostgreSQL - Production database (recommended)
- Python 3.8+ - Programming language
- pip - Package management
- Git - Version control
- Django Debug Toolbar - Development debugging
- Tailwind CSS - Utility-first CSS framework for templates
- Custom CSS - Additional styling for Django templates
- Python (v3.8+)
- pip (Python package manager)
- Git
-
Clone the repository
git clone https://github.com/yourusername/Neighborly-backend.git cd Neighborly-backend -
Create virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Set up the database
# Run migrations python manage.py makemigrations python manage.py migrate # Seed initial data python manage.py seed_data
-
Create superuser (optional)
python manage.py createsuperuser
-
Start the development server
python manage.py runserver
-
Access the application
- Web Interface:
http://localhost:8000 - Django Admin:
http://localhost:8000/admin - API Endpoints:
http://localhost:8000/api/
- Web Interface:
Neighborly-backend/
βββ aid/ # Main Django app
β βββ models.py # Database models
β βββ views.py # View functions
β βββ urls.py # URL routing
β βββ forms.py # Django forms
β βββ admin.py # Admin configuration
β βββ migrations/ # Database migrations
β βββ management/ # Custom management commands
β βββ commands/
β βββ seed_data.py # Data seeding command
βββ templates/aid/ # Django templates
β βββ components/ # Template partials
β β βββ navbar.html
β β βββ footer.html
β βββ base.html # Base template
β βββ browse.html # Browse requests page
β βββ post_request.html # Post request form
β βββ my_requests.html # User's requests
β βββ profile_view.html # User profile page
β βββ edit_request.html # Edit request form
βββ user/ # User management app
β βββ models.py # User profile models
β βββ views.py # User-related views
β βββ urls.py # User URL routing
βββ static/ # Static files (CSS, JS, images)
βββ media/ # User uploads
βββ requirements.txt # Python dependencies
βββ manage.py # Django management script
βββ settings.py # Django settings
- API Development - Use Django REST framework for API endpoints
- Template Development - Create and customize Django templates
- Database Management - Use Django ORM for data operations
- Admin Interface - Manage content through Django admin
- Browse Requests - View community help requests
- Post Requests - Submit new help requests via forms
- Manage Profiles - Update user profiles and view stats
- Track Activity - Monitor request status and responses
GET /aid/requests/- List all requestsGET /aid/request/<id>/- Get request detailsPOST /aid/post/- Create new requestPUT /aid/request/<id>/edit/- Update requestDELETE /aid/request/<id>/delete/- Delete request
GET /aid/profile/<username>/- Get user profileGET /aid/my-requests/- Get current user's requests
GET /admin/- Django admin interfaceGET /admin/aid/request/- Manage requestsGET /admin/aid/category/- Manage categoriesGET /admin/aid/location/- Manage locations
Create a .env file in the root directory:
# Django Settings
SECRET_KEY=your-secret-key-here
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
# Database
DATABASE_URL=sqlite:///db.sqlite3
# For PostgreSQL production:
# DATABASE_URL=postgres://user:pass@localhost/dbname
# Media Settings
MEDIA_URL=/media/
MEDIA_ROOT=media/
# Static Files
STATIC_URL=/static/
STATIC_ROOT=staticfiles/Key configurations in settings.py:
- Database configuration
- Media file handling
- Static files configuration
- Template settings
- Authentication settings
- CORS settings (if needed for API)
- Modify HTML templates in
templates/aid/ - Customize styling in static CSS files
- Update base template for site-wide changes
- Extend existing models in
aid/models.py - Create new models for additional features
- Update admin interface in
aid/admin.py
- Add new views in
aid/views.py - Create custom form handling
- Implement API endpoints
# Run all tests
python manage.py test
# Run specific app tests
python manage.py test aid
# Run with coverage
coverage run --source='.' manage.py test
coverage report
coverage html- Model Tests - Database model validation
- View Tests - URL routing and view logic
- Form Tests - Form validation and processing
- Integration Tests - End-to-end functionality
-
Environment Configuration
# Set environment variables export DEBUG=False export DATABASE_URL=your-production-db-url export SECRET_KEY=your-production-secret-key
-
Database Setup
# Run migrations python manage.py migrate # Collect static files python manage.py collectstatic --noinput
-
Production Server
# Install production dependencies pip install gunicorn # Run with Gunicorn gunicorn project.wsgi:application --bind 0.0.0.0:8000
- Railway - Easy Django deployment
- Heroku - Platform as a service
- DigitalOcean - VPS hosting
- AWS/GCP - Cloud platform deployment
We welcome contributions to the backend! Please follow these steps:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-backend-feature
- Make your changes
- Follow Django best practices
- Add tests for new functionality
- Update documentation as needed
- Run tests
python manage.py test - Commit your changes
git commit -m 'Add amazing backend feature' - Push to your branch
git push origin feature/amazing-backend-feature
- Open a Pull Request
- Follow PEP 8 for Python code
- Use Django conventions and best practices
- Write comprehensive tests
- Document new features and APIs
- Use meaningful commit messages
This project is licensed under the MIT License - see the LICENSE file for details.
- Django - For the robust web framework
- Python - For the powerful programming language
- Tailwind CSS - For the utility-first CSS framework
- Community Contributors - For making this project better
- Documentation: Check this README and Django documentation
- Issues: Open an issue on GitHub for bugs or feature requests
- Discussions: Use GitHub Discussions for questions and ideas
- Email: backend-support@Neighborly.com
- REST API with Django REST Framework
- Real-time notifications system
- Advanced search and filtering APIs
- Payment integration backend
- Multi-language support
- Enhanced admin dashboard
- Analytics and reporting APIs
- WebSocket support for real-time features
- v1.0.0 - Initial Django backend with templates
- v1.1.0 - User profiles and rating system
- v1.2.0 - Enhanced messaging and notifications backend
Built with β€οΈ by the Neighborly Backend Team
Powering community connections through robust Django architecture.
The frontend application for Neighborly is maintained as a separate project. If you're looking for the user interface, please refer to the frontend repository which contains the modern web application built with current frontend technologies.