A limited scoped project to prepare for a job interview
Find a file
2026-05-18 07:31:58 +05:00
bank-account-transaction-ledger Made a wrapper for occi::Statement 2026-05-18 07:31:58 +05:00
er-diagrams Changed int datatype to number and updated some names 2026-05-17 01:46:06 +05:00
.gitattributes Add .gitattributes, .gitignore, and LICENSE.txt. 2026-05-16 04:54:08 +05:00
.gitignore Add .gitattributes, .gitignore, and LICENSE.txt. 2026-05-16 04:54:08 +05:00
bank-account-transaction-ledger.slnx Fixed wrong oraocci lib file for debug profile 2026-05-16 18:57:58 +05:00
database-schema.sql Updated databes schema 2026-05-18 01:00:26 +05:00
LICENSE.txt Add .gitattributes, .gitignore, and LICENSE.txt. 2026-05-16 04:54:08 +05:00
readme.org Implemented transaction type TRANSFER 2026-05-18 03:27:36 +05:00

Bank Account Transaction Ledger

Project Setup

Environment Setup

  • Install Visual Studio
  • Download and Extract Oracle Instant Client base and sdk packages (into the same directory).

    • I extracted them to C:\oracle
  • Add the path where you extracted Instant Client to the Path variable.

VS Project Configuration

  • Add sdk include path to Project Properties > Configuration Properties > VC++ Directories > Include Directories

    • Mine was C:\oracle∈stantclient_23_0\sdk∈clude
  • Add sdk lib directory path to Project Properties > Configuration Properties > VC++ Directories > Library Directories

    • Mine was C:\oracle∈stantclient_23_0\sdk\lib\msvc
  • Add sdk lib file name to Project Properties > Configuration Properties > Linker > Input > Additional Dependencies

    • Mine was oraocci23.lib

Project Scope

Bank Account Transaction Ledger System

A console-based C++ application using:

  • Visual Studio
  • Oracle OCCI
  • Oracle XE 21c

that simulates:

  • account management
  • money transfers
  • transaction logging
  • transactional consistency

The only objectives are:

Oracle Database Connectivity

Which demostrates:

  • Environment creation
  • Connection handling
  • Statements
  • ResultSets

SQL Competency

Demonstrate the use of SQL commands like:

Demonstrate:

  • INSERT
  • SELECT
  • UPDATE
  • simple JOINs
  • aggregate queries

Transaction Management

Demonstrate:

  • commit()
  • rollback() on failed transaction
  • atomic transfer logic

HARD SCOPE LIMITS

Do NOT implement:

  • login/authentication
  • encryption
  • GUI
  • Qt
  • multithreading
  • sockets/networking
  • REST APIs
  • account types
  • interest calculations
  • scheduled jobs
  • admin systems
  • concurrency simulation
  • unit testing framework
  • ORM abstractions

Note to self: I only have 2 days to make this project so MAKE IT IN 2 DAYS.

Final Feature Set

Feature Included Implemented
View accounts YES YES
Close accounts YES YES
Create account YES YES
Deposit YES YES
Withdraw YES YES
Transfer funds YES YES
Transaction history YES YES