A comprehensive Django-based internship management system designed for government agencies to streamline the internship process for students, mentors, teachers, and administrative officials.
- Students: Browse positions, submit applications, track progress
- Mentors: Manage internship positions, review applications, monitor progress
- Teachers: Oversee student internships, academic supervision
- Officials: Administrative oversight and reporting
- π― Position Management: Create, edit, and manage internship positions
- π Application System: Streamlined application process with cover letters
- π Progress Tracking: Comprehensive progress reports and monitoring
- π Notifications: Real-time updates for all stakeholders
- π₯ Profile Management: Detailed profiles for all user types
- ποΈ Government Focus: Tailored for government internship programs
- Backend: Django 5.2.4 with PostgreSQL/SQLite support
- Frontend: Tailwind CSS for modern, responsive design
- Icons: Unicode characters for dependency-free icons
- Security: Built-in Django security features with custom middleware
- Authentication: Django Allauth integration
- Python 3.8 or higher
- pip (Python package installer)
- Git
-
Clone the repository
git clone https://github.com/codeforpakistan/tarbiyat.git cd tarbiyat -
Create virtual environment
python -m venv env # On Windows env\Scripts\activate # On macOS/Linux source env/bin/activate
-
Install dependencies
pip install -r requirements.txt
-
Environment setup
cp .env.example .env # Edit .env file with your configuration -
Database setup
python manage.py makemigrations python manage.py migrate
-
Create sample data (optional)
python manage.py setup_groups python manage.py seed
-
Create superuser
python manage.py createsuperuser
-
Run the development server
python manage.py runserver
Visit http://127.0.0.1:8000 to access the application.
tarbiyat/
βββ app/ # Main application
β βββ management/commands/ # Custom Django commands
β βββ migrations/ # Database migrations
β βββ templates/ # HTML templates
β βββ templatetags/ # Custom template tags
β βββ models.py # Database models
β βββ views.py # View logic
β βββ urls.py # URL routing
β βββ forms.py # Django forms
βββ project/ # Project settings
β βββ settings.py # Django settings
β βββ urls.py # Main URL configuration
β βββ wsgi.py # WSGI configuration
βββ requirements.txt # Python dependencies
βββ manage.py # Django management script
βββ README.md # This file
- Tailwind CSS: Utility-first CSS framework for rapid development
- Responsive Design: Mobile-first approach for all devices
- Unicode Icons: Dependency-free icons using Unicode characters
- Clean UI: Modern, government-appropriate interface design
- Security First: Built with Django's security best practices
- Scalable Architecture: Designed to handle multiple institutions
- Comprehensive Tracking: Full audit trail for all activities
- Multi-level Access: Role-based permissions and workflows
Create a .env file based on .env.example:
SECRET_KEY=your-secret-key-here
DEBUG=True
DATABASE_URL=sqlite:///db.sqlite3
ALLOWED_HOSTS=localhost,127.0.0.1The project supports both SQLite (development) and PostgreSQL (production).
For PostgreSQL:
DATABASE_URL=postgresql://username:password@localhost:5432/tarbiyat- Browse available internship positions
- Submit applications with cover letters
- Track application status
- Submit progress reports
- Manage personal profile
- Create and manage internship positions
- Review and process applications
- Monitor intern progress
- Provide feedback and evaluations
- Academic supervision of students
- Monitor student progress
- Coordinate with mentors
- Administrative oversight
- System administration
- Generate reports and analytics
- Manage users and permissions
- Oversee all internship programs
# Check environment configuration
python manage.py check_env
# Set up user groups and permissions
python manage.py setup_groups
# Generate sample data for testing
python manage.py seedpython manage.py testThis project follows Django best practices and PEP 8 guidelines.
-
Set environment variables
export DEBUG=False export SECRET_KEY=your-production-secret-key export DATABASE_URL=your-production-database-url
-
Collect static files
python manage.py collectstatic
-
Run migrations
python manage.py migrate
Docker configuration for easy deployment will be added in future releases.
We welcome contributions! Please see our Contributing Guidelines for details.
This project is licensed under the MIT License - see the LICENSE file for details.
This project is developed by Code for Pakistan, a non-profit organization working to improve government services through technology.
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue if your problem isn't already reported
- Contact us at support@codeforpakistan.org
- Django team for the excellent web framework
- Tailwind CSS for the utility-first CSS framework
- All contributors who help improve this project
Made with β€οΈ by Code for Pakistan