Internship Portal is a server-rendered Django web application that bridges the gap between students seeking practical experience and companies looking for interns. Students can browse active listings, submit applications with their CV, and track status updates in real time. Companies register separately, post internship opportunities, and manage incoming applications — accepting or rejecting candidates — all from a clean Bootstrap 5 interface. No external API or mobile client is required; everything runs as a traditional Django project with HTML templates and server-side views.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/unesexact/internship-portal-django/llms.txt
Use this file to discover all available pages before exploring further.
Key Features
Role-Based User Accounts
Two distinct account types — Student and Company — each with their own profile fields, dashboards, and permissions. Students fill in university, degree, skills, and bio; companies provide a name, industry, website, and location.
Internship Listings
Companies can create, manage, and close internship postings with a title, location, description, and an active/closed status flag. Students browse only active listings and can view full details before applying.
Applications & Status Tracking
Students submit one application per internship (duplicates are prevented at the database level). Companies review pending applications and move them to Accepted or Rejected. Each transition is logged for audit.
In-App Notifications
A lightweight Notification model keeps students informed whenever their application status changes. Unread notification counts are injected into every page via a custom context processor so the header badge always stays current.
Tech Stack
Internship Portal is intentionally lean, relying on well-understood, battle-tested components:| Layer | Technology |
|---|---|
| Backend framework | Django (Python) |
| Default database | SQLite (db.sqlite3) |
| Frontend styling | Bootstrap 5 (CDN) |
| File storage | Local filesystem via MEDIA_ROOT |
| Deployment interfaces | WSGI (config/wsgi.py) and ASGI (config/asgi.py) |
users—Profilemodel extending Django’s built-inUser; handles registration, login, profile editing, and the notifications context processor.internships—Internshipmodel owned by a companyUser; covers listing creation, browsing, and status management.applications—ApplicationandNotificationmodels; manages the student → internship relationship and drives status-change notifications.
How It Works
A new visitor registers at/users/register/ and selects either the Student or Company role, which determines which profile fields and dashboard views they see. Companies then navigate to the internships section to post new listings, while students browse the same listings and submit applications. When a company reviews an application and marks it as accepted or rejected, the portal automatically creates a Notification record for the student. Students can view their notification feed at any time to stay informed — all without leaving the browser or calling an external service.
Internship Portal does not expose a REST or GraphQL API. It is a fully server-rendered Django application: every route returns an HTML response rendered from a Django template. If you need a headless API layer, you would need to add Django REST Framework or a similar package yourself.