A full-stack micro-delivery application that connects sellers, buyers, and deliverers in a local marketplace. Built with React frontend and Django REST API backend.
- User Authentication & Verification: Secure user registration with email verification
- Marketplace: Browse and sell products with location-based delivery
- Real-time Delivery Tracking: Track deliveries with GPS coordinates
- Delivery Management: Accept, manage, and complete deliveries
- Location Services: GPS-based pickup and dropoff locations
- Credit System: Built-in payment system for transactions
- Responsive Design: Modern UI with React and styled-components
- Location:
/frontend/ - Framework: React 18.3.1 with React Router
- Styling: Styled Components
- HTTP Client: Axios for API communication
- Features:
- User authentication and verification
- Marketplace browsing and selling
- Delivery tracking and management
- Location-based services
- Location:
/marketplace/ - Framework: Django 5.1.3 with Django REST Framework
- Database: SQLite (development)
- Authentication: Token-based authentication
- Features:
- RESTful API endpoints
- User management and verification
- Product and delivery management
- Email verification system
- Media file handling
- Node.js (v14 or higher)
- Python 3.8+
- pip (Python package manager)
- Git
git clone https://github.com/ryanlin10/Micro-Delivery-App.git
cd Micro-Delivery-App# Navigate to marketplace directory
cd marketplace
# Create virtual environment
python -m venv venv
# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
# Install dependencies
pip install django djangorestframework django-cors-headers pillow
# Run migrations
python manage.py makemigrations
python manage.py migrate
# Create superuser (optional)
python manage.py createsuperuser
# Start the development server
python manage.py runserverThe backend will be available at http://localhost:8000
# Navigate to frontend directory
cd frontend
# Install dependencies
npm install
# Start the development server
npm startThe frontend will be available at http://localhost:3000
- Update
marketplace/settings.pywith your email settings for verification - Configure
ALLOWED_HOSTSfor production deployment - Set up proper database configuration for production
- Update API endpoints in components if backend URL changes
- Configure environment variables for different deployment environments
- Register and verify your email
- List products for sale with pickup/dropoff locations
- Set authentication codes for secure delivery
- Track order status and communicate with deliverers
- Browse available products in the marketplace
- Place orders with your location details
- Track delivery progress in real-time
- Verify delivery with authentication codes
- View available delivery opportunities
- Accept deliveries based on location proximity
- Navigate to pickup and dropoff locations
- Update delivery status and complete orders
Micro-Delivery-App/
├── frontend/ # React frontend application
│ ├── src/
│ │ ├── components/ # Reusable React components
│ │ ├── pages/ # Page components
│ │ ├── context/ # React context providers
│ │ └── styles/ # CSS styling files
│ └── package.json
├── marketplace/ # Django backend application
│ ├── backend1/ # Main Django app
│ │ ├── models.py # Database models
│ │ ├── views.py # API views
│ │ ├── serializers.py # DRF serializers
│ │ └── urls.py # URL routing
│ ├── marketplace/ # Django project settings
│ └── manage.py
└── README.md
POST /backend1/register/- User registrationPOST /backend1/login/- User loginPOST /backend1/verify/- Email verification
GET /backend1/products/- List all productsPOST /backend1/products/- Create new productGET /backend1/products/{id}/- Get product detailsPUT /backend1/products/{id}/- Update product
GET /backend1/open-deliveries/- Get available deliveriesPOST /backend1/accept-delivery/- Accept a deliveryGET /backend1/my-deliveries/- Get user's deliveriesPUT /backend1/update-delivery-status/- Update delivery status
- Set up a production database (PostgreSQL recommended)
- Configure environment variables
- Set
DEBUG = Falsein settings - Configure static file serving
- Deploy to platforms like Heroku, AWS, or DigitalOcean
- Build the production bundle:
npm run build - Deploy to platforms like Vercel, Netlify, or AWS S3
- Configure environment variables for API endpoints
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin feature-name - Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Ryan Lin - Initial work - ryanlin10
- Django REST Framework for the robust API framework
- React community for the excellent frontend ecosystem
- Open source contributors for various packages used