Online Tax Payment System (OTPS) has three actors Sysadmin, Staff, and User. Sysadmin is responsible for introducing users to the system. Staff is responsible for entering/updating users’ tax records, calculating taxes, and sending users invoices for payment. The user receives invoices and pays. Users’ records are stored encrypted by DES. DES secret key is created/updated periodically by Staff. The server has a public/private RSA key pair. RSA digital signature is used when sending DES-encrypted invoices. RSA key pair is created/updated by Staff. The hash function (48 bits) used for the digital signature is obtained by XOR of plaintext blocks. Payments while travelling DES-encrypted are protected from tampering with by message authentication code (MAC).
Clone the project
git clone https://github.com/mustafamengutay/safepay.git
Go to the project directory
cd safepay-main
Install dependencies
npm i
npm run i-server
Start the server
npm run dev
To run this project, you will need to add the following environment variables to your .env file
MONGO_URI
POST /login
Body | Type | Description |
---|---|---|
email |
string |
Required |
password |
string |
Required |
GET /v1/user/taxes
PATCH /v1/user/gross-salary
Body | Type | Description |
---|---|---|
grossSalary |
number |
Required |
POST /v1/user/tax-payment
Body | Type | Description |
---|---|---|
grossSalary |
number |
Required |
POST /v1/staff/tax-calculation
Body | Type | Description |
---|---|---|
userId |
string |
Required |
POST /v1/admin/user
Body | Type | Description |
---|---|---|
name |
string |
Required |
surname |
string |
Required |
email |
string |
Required |
password |
string |
Required |
POST /v1/admin/staff
Body | Type | Description |
---|---|---|
email |
string |
Required |
password |
string |
Required |
POST /v1/admin/admin
Body | Type | Description |
---|---|---|
email |
string |
Required |
password |
string |
Required |
Client: Loading...
Server: TypeScript, Node, Express, MongoDB
- Add caching layer
- Implement security-based algorithms (DES, RSA, etc.).