A clean and modern internship management system built with Django in just 2 days. This system allows companies to manage their internship programs efficiently with a beautiful admin dashboard and a user-friendly application interface.
- Easy Application Process: Apply for internship positions by filling out a simple form
- One-Time Application: Each NIK (National ID) can only apply once per department to prevent duplicate applications
- File Upload: Upload CV documents during application
- Search Functionality: Search available positions by title or department
- Secure Authentication: Built-in Django authentication system for admin access
- Beautiful Dashboard: Clean and intuitive admin dashboard with statistics and charts
- Complete CRUD Operations:
- Manage Departments
- Manage Internship Positions (Lowongan)
- Review and manage applicants
- Application Management:
- Approve or reject applicant submissions
- View detailed applicant information
- Track application status (Pending, Approved, Rejected)
- Real-time Statistics: Dashboard showing key metrics and recent applicants
- Backend: Django 6.0
- Database: PostgreSQL
- Frontend: HTML, CSS, JavaScript (Clean and modern UI)
- Authentication: Django's built-in authentication system
- Python 3.8+
- PostgreSQL
- pip (Python package manager)
-
Clone the repository
git clone https://github.com/ekyaaa/SistemMagangDjango.git cd SistemMagangDjango -
Create and activate virtual environment
python -m venv venv # On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activate
-
Install dependencies
pip install -r requirements.txt
-
Configure Database
Update your database settings in
config/settings/local.pyorconfig/settings/production.py:DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'your_database_name', 'USER': 'your_database_user', 'PASSWORD': 'your_database_password', 'HOST': 'localhost', 'PORT': '5432', } }
-
Run migrations
python manage.py migrate
-
Create superuser (Admin)
python manage.py createsuperuser
-
Run the development server
python manage.py runserver
-
Access the application
- Public Interface:
http://localhost:8000/ - Admin Login:
http://localhost:8000/admin/ - Admin Dashboard:
http://localhost:8000/dashboard/
- Public Interface:
SistemMagangDjango/
├── admin_dashboard/ # Admin dashboard app
│ ├── templates/ # Admin templates
│ ├── views.py # Admin views
│ ├── service.py # Business logic
│ └── auth_views.py # Authentication views
├── magang/ # Main internship app
│ ├── models.py # Database models
│ ├── views.py # Public views
│ ├── services/ # Service layer
│ └── templates/ # Public templates
├── config/ # Project configuration
│ ├── settings/ # Settings modules
│ │ ├── base.py # Base settings
│ │ ├── local.py # Development settings
│ │ └── production.py # Production settings
│ └── urls.py # URL routing
├── storage/ # Media files storage
│ └── cv/ # Uploaded CV files
├── manage.py
└── requirements.txt
Manages company departments where internships are available.
- Position title
- Description
- Start and end dates
- Associated department
- Personal information (NIK, name, gender, date of birth)
- Contact details (address, phone)
- Academic information (university, major, GPA)
- CV upload
- Unique constraint on NIK to prevent duplicate applications
Tracks the relationship between applicants and positions with status management.
- Clean and modern landing page
- List of available internship positions
- Search and filter functionality
- Easy-to-use application form
- Automatic validation for duplicate NIK
- Overview statistics (total positions, applicants, pending applications)
- Recent applicants table
- Department management (Create, Read, Update, Delete)
- Position management (Create, Read, Update, Delete)
- Applicant review system
- Application status management (Approve/Reject)
- Django's built-in authentication system
- CSRF protection
- Staff-only access to admin dashboard
- Secure file upload handling
- SQL injection protection through Django ORM
- Email notifications for applicants
- Advanced filtering and sorting options
- Export data to Excel/PDF
- Multi-language support
- Applicant tracking system
- Interview scheduling
This project was developed in 2 days as a rapid prototype for an internship management system. It demonstrates:
- Clean code architecture
- Service layer pattern
- Separation of concerns
- Modern UI/UX principles
- Django best practices
This project is open source and available under the MIT License.
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
For any questions or suggestions, please open an issue or contact the repository owner.
Note: Remember to change the SECRET_KEY in production and never commit sensitive information to the repository.