-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathReadFile.rtf
More file actions
99 lines (98 loc) · 3.67 KB
/
ReadFile.rtf
File metadata and controls
99 lines (98 loc) · 3.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
{\rtf1\ansi\ansicpg1252\cocoartf2822
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
{\*\expandedcolortbl;;}
\paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\f0\fs24 \cf0 Bank Management System \'96 Final Project\
--------------------------------------\
\
This project is a multi-module banking system written in C. \
It simulates the core operations of a real bank and demonstrates\
concurrency, synchronization, and ACID properties in financial transactions.\
\
--------------------------------------\
1. How to Build\
--------------------------------------\
1. Open a terminal inside the project folder.\
2. Run the following command:\
make\
3. This will compile all the source files and create an executable\
named 'server'.\
\
If you\'92re using CLion or Code::Blocks, you can also build it directly\
from the IDE since the Makefile handles all dependencies.\
\
--------------------------------------\
2. How to Run\
--------------------------------------\
Once compiled, run the server from the terminal:\
\
./server\
\
The system will prompt you to log in as one of the following:\
- Customer\
- Bank Employee\
- Manager\
- Administrator\
\
Each role has different access rights and operations.\
\
--------------------------------------\
3. Project Structure\
--------------------------------------\
Source Files:\
\uc0\u9500 \u9472 \u9472 main.c\
\uc0\u9500 \u9472 \u9472 auth.c / auth.h\
\uc0\u9500 \u9472 \u9472 customer.c / customer.h\
\uc0\u9500 \u9472 \u9472 employee.c / employee.h\
\uc0\u9500 \u9472 \u9472 manager.c / manager.h\
\uc0\u9500 \u9472 \u9472 admin.c / admin.h\
\uc0\u9500 \u9472 \u9472 utils.c / utils.h\
\uc0\u9500 \u9472 \u9472 session_manager.c / session_manager.h\
\
Data Folder:\
\uc0\u9492 \u9472 \u9472 data/\
\uc0\u9500 \u9472 \u9472 customers.csv\
\uc0\u9500 \u9472 \u9472 employees.csv\
\uc0\u9500 \u9472 \u9472 managers.csv\
\uc0\u9500 \u9472 \u9472 admins.csv\
\uc0\u9500 \u9472 \u9472 loans.csv\
\uc0\u9500 \u9472 \u9472 transactions.csv\
\uc0\u9492 \u9472 \u9472 feedback.csv\
\
Documentation:\
\uc0\u9500 \u9472 \u9472 CLASS_DIAGRAM.png\
\uc0\u9500 \u9472 \u9472 Notes_ACID_and_Concurrency.txt\
\uc0\u9492 \u9472 \u9472 README.txt (this file)\
\
--------------------------------------\
4. Concurrency and Synchronization\
--------------------------------------\
The system uses file locking and pthread synchronization to handle\
multiple users safely at the same time. This prevents race conditions\
during updates to shared resources like account balances or loan records.\
\
--------------------------------------\
5. ACID Properties\
--------------------------------------\
- Atomicity: Each transaction is completed fully or not at all.\
- Consistency: Data files remain valid after every operation.\
- Isolation: Concurrent sessions do not interfere with each other.\
- Durability: All committed changes are saved permanently to disk.\
\
--------------------------------------\
6. Notes\
--------------------------------------\
- The project was tested on macOS and Linux using GCC.\
- No external libraries are required other than the pthread library.\
- Data files are preloaded with sample records for testing.\
\
--------------------------------------\
7. Credits\
--------------------------------------\
Developed by: Piyush \
Submitted to: [Your College Name] \
Course: Operating Systems / Systems Programming \
Date: 31 October 2025\
}