SlumSarathi is a comprehensive web platform built with Django, designed to empower and connect Students by providing easy access to essential services, educational resources, and events.
- User Authentication: Secure user registration, login, and profile management.
- Service Listings: Users can browse and request essential services. Service providers can manage incoming requests.
- Resource Sharing: A repository for uploading and accessing important documents and educational materials.
- Event Management: Users can create, publish, and manage events. The platform notifies all users when a new event is published.
- Event Registration: Simple, one-click event registration with email confirmations.
- Dynamic Search: Real-time, AJAX-powered search across Services, Resources, and Events.
- Responsive UI: A clean, modern, and mobile-friendly interface built with Bootstrap 5.
- Email Notifications: Automated, professionally styled emails for key actions like event registration and publication.
- Backend: Django
- Frontend: HTML, CSS, JavaScript, Bootstrap 5
-- Database: MySQL (configured with
mysqlclient) - Widgets:
django-widget-tweaksfor form styling. - Environment Management:
django-environ
Here is a high-level overview of the project's structure:
slumSarathi/
├── apps/
│ ├── accounts/ # Manages user authentication, profiles
│ ├── events/ # Manages event creation, listing, registration
│ ├── resources/ # Manages resource uploads and listings
│ └── services/ # Manages service listings and requests
├── media/ # Stores user-uploaded files (e.g., event images, resources)
├── static/ # Contains global static files (CSS, JS, images)
├── templates/ # Contains base HTML templates and layouts
│ ├── accounts/
│ ├── events/
│ ├── resources/
│ ├── services/
│ └── base.html # Main site template
├── slumSarathi/ # Main Django project configuration
│ ├── settings.py # Project settings
│ └── urls.py # Root URL configuration
├── .env.example # Example environment variables
├── manage.py # Django's command-line utility
└── requirements.txt # Python dependencies
Follow these steps to get the project running locally.
- Python 3.8+
- A running MySQL database server.
git clone https://github.com/prasannadhami14/slumSarathi.git
cd slumSarathiOn macOS/Linux:
python3 -m venv venv
source venv/bin/activateOn Windows:
python -m venv venv
.\venv\Scripts\activatepip install -r requirements.txtCreate a file named .env in the project root by copying the example file:
cp .env.example .envNow, open the .env file and fill in the required values:
# .env
# SECURITY WARNING: a strong, unique secret key is required
SECRET_KEY='your-strong-secret-key'
# Set to True for development, False for production
DEBUG=True
# Database Configuration
DB_NAME='slumsarathi_db'
DB_USER='your_db_user'
DB_PASSWORD='your_db_password'
DB_HOST='localhost'
DB_PORT='3306'
# Email Configuration (Example using Gmail)
EMAIL_BACKEND='django.core.mail.backends.smtp.EmailBackend'
DEFAULT_FROM_EMAIL='your-email@gmail.com'
EMAIL_HOST='smtp.gmail.com'
EMAIL_PORT=587
EMAIL_HOST_USER='your-email@gmail.com'
EMAIL_HOST_PASSWORD='your-gmail-app-password'
EMAIL_USE_TLS=True
EMAIL_USE_SSL=FalseThis will set up the database schema.
python manage.py migrateThis allows you to access the Django admin panel.
python manage.py createsuperuserYou're all set! Start the server with:
python manage.py runserverThe application will be available at http://127.0.0.1:8000/.
Contributions are welcome! Please feel free to fork the repository, make changes, and submit a pull request.
- Fork the repository.
- 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.
This project is licensed under the MIT License. See the LICENSE file for details.
