A comprehensive platform that connects job seekers, job publishers, and supporters through an integrated system featuring job matching, freelance project management, and community donation initiatives.
This system serves four main user types:
- Job Seekers: Professionals looking for employment opportunities
- Job Publishers: Companies and individuals posting job opportunities
- Supporters: Community members contributing to donation initiatives
- Admin: Platform administrators managing the entire ecosystem
- Registration Fields: Full name, email, specialization, field of work, date of birth, mobile number, password confirmation
- Login: Email and password authentication
- Password Recovery: Email-based password reset functionality
-
Profile Management
- Personal information (name, photo, specialization, field of work)
- Experience level and bio
- 5-star rating system β
- Availability status (available for work or not)
- Expected hourly rate
- Edit and save functionality
-
Services Portfolio
- Service descriptions and work samples
- Portfolio management with edit/save capabilities
-
Job Opportunities
- Filters:
- All categories or specific category
- Latest posted jobs
- Part-time vs full-time positions
- Hourly rate vs monthly salary
- Application Limits: Maximum 5 job applications per week
- Job Details: Company name/logo, position title, requirements, employment type, location, application deadline
- Actions: Apply, save to favorites, share via link or social media
- Filters:
-
Application Tracking
- Track weekly applications
- Color-coded status system:
- Yellow: Active applications (within the week)
- Red: Expired applications (after a week without acceptance)
-
Notifications & Inbox
- Job acceptance notifications
- Admin communications
- System announcements
-
Employment Status
- When hired, company contacts platform support
- Application opportunities are frozen
- Employment badge displayed on profile
-
Technical Support
- Contact admin interface with title, description, and message fields
-
Co-working Spaces
- Nearby workspace listings
- Owner contact information
- Power and high-speed internet availability hours
-
Settings
- Password management
- Dark mode toggle
-
Company Registration
- Company name, location, type (marketing, programming, etc.)
- License number, email, mobile, password confirmation
-
Business Owner Registration
- Full name, mobile, email, password confirmation
-
Individual Client Registration
- Full name, mobile, email, password confirmation
-
Company Profile
- Company information (name, logo, field, size, headquarters)
- Website and LinkedIn links
- Company bio and services description
-
Job Posting
- Job title, description, requirements
- Employment type (full-time/part-time)
- Salary structure (monthly salary or hourly rate)
- Application deadline
- External application link and HR email
-
Posted Jobs Management
- View all published jobs
- Filter by date range
- Edit and republish functionality
-
Freelance Project Management
- Project name, description, requirements
- Required technologies
- Direct documentation upload capability
-
Published Projects
- Manage all freelance projects
- Edit and republish functionality
-
Technical Support
- Direct communication with platform support
- Structured messaging system
-
Settings
- Password management
- Dark mode
- Notification inbox
-
Personal Profile
- Photo (optional), full name, location
- Business information (if applicable)
- Social media links, email, mobile
-
Work Posting
- Service Type: Choose between service or system development
- Service Details: Name, description, proposed price, delivery timeline
- System Development: Application, website, or desktop software
- System Requirements: Full description or documentation upload
-
Project Management
- Edit and republish posted projects/services
-
Technical Support
- Platform communication system
-
Settings
- Password and dark mode management
- Notification inbox
- Full name, country, mobile number with country code
- Email and password confirmation
- Email/password login system
-
Profile Management
- Personal information display
- Achievement badges based on donation frequency and amounts
- Color-coded recognition system
-
Initiative Browsing
- Filters:
- Latest initiatives
- Price range ($500-$1000, $1000-$5000, etc.)
- Initiative type (technical, community, humanitarian)
- Progress Tracking: Visual indicators showing funding progress toward goals
- Donation Process: Multiple payment method options
- Filters:
-
Completed Initiatives
- Photo galleries with descriptions
- Success stories and impact reports
-
Technical Support
- Direct platform communication
-
Feedback System
- Initiative feedback and interaction capabilities
-
Settings
- Password management
- Dark mode
- Notification inbox
- Email and password login only
-
User Management
- Job Seekers: View, delete, or disable accounts
- Job Publishers: Account management capabilities
- Supporters: Account management plus badge assignment based on donation history
-
Project Evaluation
- Review projects/services from companies and individuals
- Send price quotes via email
- Contract negotiation and agreement management
-
Initiative Management
- Create Initiatives: Name, description, purpose, target amount, type, date
- Documentation: Add photos for completed initiatives
- Tracking: Monitor completed vs. in-progress initiatives
- Management: Edit and republish initiatives
-
Settings
- Password management
- Dark mode
- Backend Framework: Django 5.2+ with Django REST Framework
- Database: PostgreSQL 17
- Cache & Message Broker: Redis 8.0
- Task Queue: Celery
- Authentication: JWT with django-rest-framework-simplejwt
- API Documentation: DRF Spectacular (OpenAPI/Swagger)
- File Handling: Django file upload with Pillow for images
- Containerization: Docker with Docker Compose
- Web Server: Nginx (production)
- WSGI Server: Gunicorn (production)
- User authentication system for all user types
- Role-based access control (RBAC)
- Job posting and application system
- Freelance project management
- Donation initiative platform
- File upload and management
- Email notification system
- Real-time notifications
- Search and filtering capabilities
- Payment integration for donations
- Admin dashboard with full management capabilities
- API documentation and testing
- Security implementations (rate limiting, input validation)
- Mobile-responsive design considerations
/api/auth/- Authentication endpoints/api/users/- User management/api/jobs/- Job postings and applications/api/projects/- Freelance projects/api/initiatives/- Donation initiatives/api/admin/- Admin-only endpoints/api/notifications/- Notification system/api/support/- Technical support
- Python 3.13+
- Docker and Docker Compose
- PostgreSQL 17
- Redis 8.0
# Clone the repository
git clone <repository-url>
cd Rwad-Al-Furas-Job-Matching-Freelance-Donation-System-Backend
# Start development environment
docker-compose -f docker-compose.dev.yml up --build
# Run migrations
docker-compose -f docker-compose.dev.yml exec rwad_furas_backend python manage.py migrate
# Create superuser
docker-compose -f docker-compose.dev.yml exec rwad_furas_backend python manage.py createsuperuser# Start production environment
docker-compose up --build -d
# Collect static files
docker-compose exec rwad_furas_backend python manage.py collectstatic --noinputAPI documentation is available at:
- Development:
http://localhost:8000/api/schema/swagger-ui/ - Production:
https://api.rwad-furas.com/api/schema/swagger-ui/
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Analysis By: Eng Adham Saed, Computer Engineer
Building bridges between talent and opportunity while fostering community support through technology.