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.
Just one command:
# https://hub.docker.com/r/smalinux/tbsys
docker run -it --rm smalinux/tbsys
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
- 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