Skip to content

smalinux/TBSys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telecom Billing System (TBSys)

Simple CLI project was written as part of my technical interview assessment.

Video Demo: https://asciinema.org/a/AgRCZs0bk6eDptj9kPOe81Cwb

Telecom billing system is a software application used by telecommunication companies to manage and automate their billing and revenue management processes.

Quick run using docker

Just one command:

# https://hub.docker.com/r/smalinux/tbsys
docker run -it --rm smalinux/tbsys

Build the source code:

Install dependencies:

# cmake gcc sqlite3 sqlite3.h criterion
apt-get install cmake build-essential sqlite3 libsqlite3-dev libcriterion-dev

build:

git clone https://github.com/smalinux/TBSys
cd TBSys
make

run:

./tbsys

# or

./tbsys 2> /dev/null # skip logs

run unit tests:

make test

automate formatting the code:

astyle -r -xb -s3 -p -xg -c -k1 -W1 -H \*.c \*.h

Generate docs

doxygen

TODO

  • Sqlite DB support
  • Use library to create formatted ASCII tables for console applications
  • Dockerizing TBSys
  • Doxygen support
  • astyle support
  • Input Validation (Almost done. skip it for now.)
  • Check scanf return value: https://stackoverflow.com/q/7271939/5688267
  • Unit testing using criterion unit test framework
  • logging support using rxi/log
  • Add rxi/log as git subtree (trivial. skip it for now.)
  • Add fort.ch as git subtree (trivial. skip it for now.)
  • Add unit test to check if rxi/log is working (trivial. skip it for now.)
  • Split tbsys.[ch] to more logical modules. (Leave it for now!) db.ch, message.ch, etc
  • Support argc & argv to invoke tbsys operations as a script (trivial. skip it)
  • Use IWYU (Leave it for now!)
  • Add GitHub actions for CI/CD
  • Use OOP framework like Maloc

Releases

No releases published

Packages

No packages published

Languages