A simple web application simulating core functionalities of a college Enterprise Resource Planning (ERP) system. Built from scratch as a learning project using Django for the backend and Tailwind CSS for the frontend styling via CDN.
This project demonstrates fundamental web development concepts with Django, including:
- Multi-app structure
- Model definition and database migrations
- Django Admin for data management
- URL routing
- Function-based views
- Django Templates for dynamic content rendering
- Template inheritance (
base.html) - Displaying data and relationships (Foreign Keys, Many-to-Many via intermediary model)
- User Authentication (Login/Logout)
- Restricting access to views (
@login_required) - Frontend forms for creating, editing, and deleting model instances (CRUD)
- Student Management:
- View a list of all students.
- View details of a single student.
- Add a new student via a frontend form.
- Edit an existing student via a frontend form.
- Delete a student via a confirmation page.
- View courses a student is enrolled in on their detail page.
- Course Management:
- View a list of all courses.
- View details of a single course.
- Add a new course via a frontend form.
- Edit an existing course via a frontend form.
- Delete a course via a confirmation page.
- View students enrolled in a course on its detail page.
- Enrollment Management:
- Add an enrollment for a student (linking student and course) via a frontend form (typically initiated from the student's page).
- Delete an enrollment from the student or course detail pages.
- Authentication & Access Control:
- Users can log in and log out.
- Most application pages (lists, details, forms) require a user to be logged in (
@login_required). - Access to the powerful Django Admin site (
/admin/) for comprehensive data management (requires superuser). - Note: A public self-service registration feature was not implemented for simplicity in this version.
Main Dashboard
Students Dashboard
Add Student Form
Course Dashboard
Add Enrollment Form
Student's Detail

- Backend: Python, Django
- Frontend: Django Templates, HTML, Tailwind CSS (via CDN link)
- Database: SQLite (default Django database)
Follow these steps to get the project running on your local machine:
-
Ensure Python and pip are installed: If not, download from python.org. Make sure to add Python to your system's PATH during installation (especially on Windows).
-
Clone the repository or create the project directory:
# If using git # git clone <repository_url> # cd mini_college_erp # If creating manually mkdir mini_college_erp cd mini_college_erp
-
Create and activate a virtual environment:
python -m venv venv # On Windows: # venv\Scripts\activate # On macOS/Linux: # source venv/bin/activate
-
Install Django:
pip install django
-
Create the Django project structure:
django-admin startproject college_erp . -
Create the apps (
core,students,courses):python manage.py startapp core python manage.py startapp students python manage.py startapp courses
-
Apply database migrations: This creates the database tables for built-in apps and your custom models (Student, Course, Enrollment).
python manage.py migrate
-
Create a superuser: You need a superuser account to access the Django Admin site and initially log in to the main application.
python manage.py createsuperuser
Follow the prompts to create a username and password.
-
Run the development server:
python manage.py runserver
- Once the server is running (
http://127.0.0.1:8000/), open this address in your web browser. - The Home page is publicly accessible.
- To access Student or Course lists and forms, you need to log in. Click the "Login" link in the header.
- Log in using the superuser account you created.
- Navigate to the Students or Courses links in the header.
- From the list pages, you can:
- Click on an item's name/code to view its Details.
- Use the "Add New..." button to Create a new item via a form.
- From the detail pages, you can:
- Use the "Edit..." button to Update the item's details via a form.
- Use the "Delete..." button to go to a Confirmation page for deletion.
- On Student/Course detail pages, view related Enrollments.
- On the Student detail page, use the "Add Enrollment" button to create a new enrollment.
- To delete an enrollment, go to the Student or Course detail page where it's listed and use the small "Delete" link next to it.
- Access the Django Admin site at
http://127.0.0.1:8000/admin/using your superuser credentials for backend data management. - Click the "Logout" button in the header when finished.
- Implement user roles/permissions (e.g., Faculty vs. Admin) to restrict CRUD actions or data visibility.
- Add user registration if needed.
- Add more models (e.g., Instructors, Departments, Semesters, Grades model for more complex grading).
- Implement search and filtering on list pages.
- Improve frontend styling and responsiveness using more advanced Tailwind techniques or a build process.
- Implement features like assigning instructors to courses, students registering for courses themselves (if allowed).
- Add messaging framework to display success/error messages after form submissions.