Skip to content

A user-friendly and multifunctional portal for course registration, managing student, faculty, and course details.

Notifications You must be signed in to change notification settings

kumaranjalij/Course-Registration-Portal-ACADEMIA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Course Registration Portal (Academia)

Project Objective: The objective of this project is to develop a user-friendly and multifunctional Academia Portal for course registration. This portal will manage student and faculty details, course information, and user accounts with role-specific functionalities.

Functionalities

Admin Student Faculty
Add New Student View Available Couses View Offering Courses
View Student Details Enroll New Course Add New Course
Remove Student Drop an Enrolled Courses Remove Offered Courses
Add Faculty View Enrolled Couses Update Offered Courses
View Faculty Details Logout and Exit View Enrollments
Remove Faculty Logout and Exit
Logout and Exit

Assumption: A course will have limited number of seats.

Technologies and Mechanisms Used

  • Language: C programming
  • Socket Programming: Establishes a client-server connection for communication.
  • File Handling: All student, faculty, and course information is stored in files.
  • File Locking: Used to protect critical sections. Read lock is used for viewing course details, and write lock is used for enrolling/unenrolling in courses.
  • Concurrency: Server handles multiple clients concurrently.
  • Password Protection: Ensures secure access to user accounts and administrative functions.

File Structure

ACADEMIA/
├── Getter_Setter/        # Contains functions for getting and setting data fields
├── Libs/                 # Holds external or custom libraries used by the project
├── Record_File/          # Stores data files used by the application
├── client.c              # Implements the client-side application
├── server.c              # Implements the server-side application
├── set_record.c          # Initializes the database with sample records
├── set_admin.c           # Sets up the initial admin account
├── file_structures.h     # Defines the data structures used in the project
├── get_record.c          # Contains functions to retrieve records from the database
└── my_function.h         # Declares utility functions used across the project

Run Locally

Clone the project

  git clone https://github.com/kumaranjalij/Course-Registration-Portal-ACADEMIA.git

Go to the project directory

  cd Course-Registration-Portal-ACADEMIA/ACADEMIA

Initialize records and admin account

  gcc -o set_record set_record.c
  ./set_record

Set up admin account

  gcc -o set_admin set_admin.c
  ./set_admin

Compile and run the server

  gcc -o server server.c 
  ./server

Compile and run the client

  gcc -o client client.c 
  ./client

Screenshots

Initial Connection Setup

Communication establishment

Admin functionalities

Student functionalities

About

A user-friendly and multifunctional portal for course registration, managing student, faculty, and course details.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages