A full-stack mentorship platform connecting aspiring international students with mentors currently studying abroad.
EdConnect bridges the information gap for students planning to study abroad by facilitating direct connections with peers who are already navigating international universities. The platform enables meaningful mentorship relationships through structured matching, real-time communication, and administrative oversight.
Students gain access to first-hand insights about university life, application processes, and cultural adaptation, while mentors can share their experiences and contribute to the next generation of international students.
- Profile creation with academic background and study abroad goals
- Browse mentor profiles filtered by university, field of study, and location
- Send connection requests and schedule mentorship sessions
- Real-time messaging with matched mentors
- Access to curated resources and guides
- Comprehensive profile setup showcasing university and expertise
- Availability management for mentorship sessions
- Student request handling and connection management
- Progress tracking for mentoring relationships
- Resource sharing capabilities
- User verification system for mentors and students
- Platform analytics and usage monitoring
- Content moderation and user support
- Feature management and system configuration
- Framework: Django 4.2+ with Django REST Framework
- Database: PostgreSQL 15+
- Caching: Redis 7.0+
- Task Processing: Celery with Redis broker
- Authentication: JWT with Django Simple JWT
- Framework: React 18+ with TypeScript
- Build System: Vite 4+
- Styling: Tailwind CSS 3.3+
- Components: ShadCN UI
- State Management: Redux
- Containerization: Docker and Docker Compose
- Web Server: Nginx
- WSGI Server: Gunicorn
- Runtime: Python 3.11+, Node.js 18+
- Docker and Docker Compose
- Python 3.11 or higher
- Node.js 18 or higher
- Git
Clone the repository:
git clone https://github.com/username/edconnect.git
cd edconnectSet up environment variables:
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.envConfigure your environment files with appropriate values for database connections, API keys, and service URLs.
Start the application with Docker:
docker-compose up --buildInitialize the database:
docker-compose exec backend python manage.py migrate
docker-compose exec backend python manage.py createsuperuserThe application will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000/api/v1
- Admin interface: http://localhost:8000/admin
For local development without Docker:
Backend setup:
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserverFrontend setup:
cd frontend
npm install
npm run devRequired services:
- PostgreSQL database running on port 5432
- Redis server running on port 6379
- Celery worker process for background tasks
docker exec -it django_app bash
Database Container
bash
Copy
Edit
docker exec -it postgres_db psql -U myuser -d mydb
💳 Stripe Webhooks
Run the following command to listen for Stripe events and forward them to your local API:
bash
Copy
Edit
stripe listen --forward-to localhost/api/bookings/stripe-webhook/
## Usage
### Getting Started
After installation, create your first account through the web interface. Students should complete their academic profile including target universities and areas of interest. Mentors need to verify their current university enrollment and specify their areas of expertise.
The matching system considers factors like academic discipline, target universities, and geographical preferences to suggest relevant mentor-student connections.
### Development Workflow
Create a feature branch for new development:
```bash
git checkout -b feature/your-feature-nameAccess running services for debugging:
# Backend application shell
docker-compose exec backend python manage.py shell
# View application logs
docker-compose logs -f backend
docker-compose logs -f frontend- Enhanced matching algorithm using machine learning
- Group mentorship sessions and webinar capabilities
- Advanced analytics for tracking student progress
- Integration with university databases for automatic verification
- Multi-language support for global accessibility
We welcome contributions from developers, designers, and domain experts. Please read our contributing guidelines and code of conduct before submitting pull requests.
- Bug fixes and performance improvements
- New feature development
- Documentation updates
- User interface enhancements
- Testing and quality assurance
When reporting bugs or requesting features, please provide:
- Clear description of the issue or desired functionality
- Steps to reproduce (for bugs)
- Expected behavior vs actual behavior
- Environment details (operating system, browser, etc.)
This project is licensed under the MIT License. See the LICENSE file for full terms and conditions.
For technical issues, feature requests, or general questions:
- Create an issue in the GitHub repository
- Check existing documentation and FAQ
- Contact the development team through established channels
The project maintains active development with regular updates and community engagement through GitHub discussions and issue tracking.