Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CSE-513A-System-Software-Mini-Project

CSE-513A course System Software Mini Project

Banking Management System

A client-server banking application built with C

Functionalities

[x] Data consistency
[x] Handling of race condition using file management
[x] Locking mechanism
[x] Process Synchronization
[x] Socket Programming
[x] Concurrency 
[x] Synchronization 
[x] ACID properties
[x] Process Management
[x] File Management
[x] File Locking 
[x] Multi-processing ( instead of Multi-threading. Each client gets a process )

Project Structure

├── bin
│   ├── client
│   └── server
├── build
│   ├── accounts.o
│   ├── audit.o
│   ├── auth.o
│   ├── client_client.o
│   ├── client_input_validation.o
│   ├── client_menu_admin.o
│   ├── client_menu_customer.o
│   ├── client_menu_employee.o
│   ├── client_menu_manager.o
│   ├── client_net.o
│   ├── client_protocol.o
│   ├── client_util.o
│   ├── io.o
│   ├── ledger.o
│   ├── loans.o
│   ├── locks.o
│   ├── main.o
│   ├── protocol.o
│   ├── router.o
│   ├── server.o
│   ├── sessions.o
│   └── wal.o
├── cleanup_sessions.sh
├── client
│   ├── client.c
│   ├── input_validation.c
│   ├── menu_admin.c
│   ├── menu_admin.h
│   ├── menu_customer.c
│   ├── menu_customer.h
│   ├── menu_employee.c
│   ├── menu_employee.h
│   ├── menu_manager.c
│   ├── menu_manager.h
│   ├── net.c
│   ├── net.h
│   ├── protocol.c
│   ├── protocol.h
│   ├── util.c
│   └── util.h
├── concurrency_synchronization_acid.md
├── data
│   ├── accounts.dat
│   ├── audit.log
│   ├── feedback.dat
│   ├── loans.dat
│   ├── sessions.dat
│   ├── transactions.dat
│   ├── users.dat
│   └── wal.log
├── images
│   ├── class_diagram.png
│   └── class_diagram.svg
├── include
│   ├── accounts.h
│   ├── audit.h
│   ├── auth.h
│   ├── config.h
│   ├── io.h
│   ├── ledger.h
│   ├── loans.h
│   ├── locks.h
│   ├── protocol.h
│   ├── records.h
│   ├── router.h
│   ├── server.h
│   ├── sessions.h
│   └── wal.h
├── Makefile
├── README.md
└── src
    ├── accounts.c
    ├── audit.c
    ├── auth.c
    ├── io.c
    ├── ledger.c
    ├── loans.c
    ├── locks.c
    ├── main.c
    ├── protocol.c
    ├── router.c
    ├── server.c
    ├── sessions.c
    └── wal.c

Building

In the root directory of the project

If any modification has been done in the code ( or if you are running this proejct for the first time )

make clean
make

Running

Terminal 1

./bin/server

Terminal 2,3....

./bin/client

Default Credentials

Administrator:

  • Username: admin
  • Password: admin123

Clean Up

Remove build artifacts

make clean

Remove data files (this deletes all accounts!)

Contributor

Name: Atharva Pingale Github: https://github.com/atharva0300

About

CSE-513A course System Software Mini Project

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages