Skip to content

Nepal-College-of-Information-Technology/project-work-group_15

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

56 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Review Assignment Due Date

🌩️ Cloud Application and Development Foundation

Course Project: College Management System

Department of Software Engineering
Nepal College of Information Technology (NCIT)
Pokhara University


πŸ§‘β€πŸ€β€πŸ§‘ Team Members

Group Number: 3

Name Roll Number Role
Laxman Khatri 221623 Fullstack
Denisha Adhikari 221651 Backend Dev
Abhishek Bhattarai 221605 Frontend Dev

πŸ“Œ Project Abstract

This project is a web-based College Management System that enables secure and efficient handling of student data, department records, and enrollment operations using modern cloud-based and containerized web technologies.

It addresses the need for lightweight, fast, and scalable solutions in academic institutions to reduce manual paperwork and streamline record keeping, especially relevant in today’s cloud-native education systems.

The project demonstrates RESTful service design, secure user authentication, and full CRUD operations for students, courses (departments), and enrollments using a modular FastAPI backend and a dynamic HTML/JS frontend.


β›³ Problem Statement

  • Challenge: Manual student, department, and enrollment record systems are prone to errors and inefficiency.
  • Context: Digitizing these operations in a cloud-deployable app improves accessibility, reliability, and efficiency.
  • Impact: Helps academic institutions better manage administrative operations while introducing students to containerized and secure cloud-native application development.

🎯 Project Objectives

  • Build a secure, cloud-deployable web application using FastAPI and PostgreSQL.
  • Provide CRUD functionality for Students, Departments, and Enrollments.
  • Use OAuth2 JWT-based authentication to protect sensitive endpoints.
  • Containerize the application using Docker for portable deployment.
  • Maintain a clean and interactive UI using HTML, CSS, and JavaScript.

πŸ—οΈ System Architecture

Frontend (index.html)
   |
   |---> REST API (FastAPI)
         |-- Authentication (JWT)
         |-- Student Routes
         |-- Department Routes
         |-- Enrollment Routes
         |
         ---> PostgreSQL Database (via SQLAlchemy ORM)

πŸ”§ Technologies & Tools Used

☁️ Cloud & Containerization

  • Docker, Docker Compose
  • Deployed on AWS EC2

πŸ’» Languages

  • Python
  • HTML5, CSS3
  • JavaScript

πŸ—„οΈ Database

  • PostgreSQL

πŸ› οΈ Backend Libraries

  • FastAPI
  • SQLAlchemy
  • asyncpg
  • python-jose
  • passlib
  • Jinja2

πŸš€ Implementation Highlights

  • Modular FastAPI backend (students, courses, enrollments routers)
  • HTML form authentication using OAuth2PasswordRequestForm
  • JWT-based token issuance and verification
  • Middleware to protect endpoints and allow session-based visibility
  • Dynamic HTML page (index.html) that shows/hides content post-login

🌌 Testing & Validation

  • Tested routes via Swagger UI (/docs)
  • Login and authentication validated with token
  • Frontend tested in modern browsers
  • Dockerized deployment validated on local and remote EC2

πŸ“ Repository Structure

college-management-system/
β”‚
β”œβ”€β”€ auth.py              # Authentication logic (JWT, password hash)
β”œβ”€β”€ main.py              # FastAPI app entry point
β”œβ”€β”€ database.py          # DB engine and config
β”œβ”€β”€ models.py            # SQLAlchemy models
β”œβ”€β”€ routers/
β”‚   β”œβ”€β”€ students.py
β”‚   β”œβ”€β”€ courses.py
β”‚   └── enrollments.py
β”œβ”€β”€ templates/
β”‚   └── index.html       # Main HTML frontend
β”œβ”€β”€ static/              # CSS, JS files
β”œβ”€β”€ requirements.txt     # Python dependencies
β”œβ”€β”€ Dockerfile
β”œβ”€β”€ docker-compose.yml
└── README.md

πŸ§ͺ Local Setup (Without Docker)

Step 1: Clone Repository

git clone https://github.com/your-username/college-management-system.git
cd college-management-system

Step 2: Set Up Virtual Environment

python -m venv venv
source venv/bin/activate  # Linux/macOS
venv\Scripts\activate   # Windows

Step 3: Install Dependencies

pip install -r requirements.txt

Step 4: Configure PostgreSQL

Set up a PostgreSQL DB and update connection string in database.py.

Step 5: Run the Server

uvicorn main:app --reload

🐳 Docker Deployment

Step 1: Build and Run

docker-compose up --build

Step 2: Access the App

http://localhost:8080

πŸ” Login Credentials (Default)

Username: laxman  
Password: secret  

You can change this in auth.py.


πŸ“ˆ Future Enhancements

  • Add Update/Delete for Students, Departments, Enrollments
  • Export data as CSV
  • Add Admin Dashboard Analytics
  • Extend with React frontend (coming soon)
  • Develop additional REST APIs for advanced filtering and reporting
  • Implement role-based access control (RBAC)
  • Add user registration page and flow
  • Integrate CI/CD pipeline with GitHub Actions
  • Enhance security with OAuth2 scopes and refresh tokens
  • Add support for bulk data import/export
  • Improve UI/UX with responsive design and accessibility features

πŸ™ Acknowledgments

  • NCIT Faculty Mentors
  • Open Source FastAPI Docs
  • Contributors to FastAPI, Docker, SQLAlchemy

πŸ“š References

About

project-work-group_15 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •