Skip to content

RyanLarge13/Timer-Console

Repository files navigation

⏱️ Timer Console

Handle time with this console based time management application. Set multiple timers, alrams and start the stopwatch!

C++ for fast, safe and reliable code. Garunteed to work in any Unix based system and is also compatable on windows systems using powershell.

This is a bare bones project. You are welcome to configure a cmake file or just simply compile with GCC or clang

🏗️ Compiling

First make sure clang is installed. If you are on Mac it comes pre installed

Install Clang

  1. Open a terminal
  2. cd into directory
$ cd Timer-Console/
  1. Check permissions
$ chmod 777 build.sh
  1. Run build script using bash
$ bash build.sh

If you ran into build errors you most likely do not have clang installed or a version of clang that is too outdated for the program. Required clang version 17+.

Testing

🧪 Types of Testing With Timer Console

Here are the main types of testing relevant to this project and what should be performed per new feature

In this project we use gtest

Unit Testing Tests individual functions or classes in isolation

Should be fast and run frequently

Example: Testing a Timer::create() method

System Testing Tests the entire application as a whole

Run it. Compile and run it often. Try to break it

Regression Testing Ensures that new changes don’t break old functionality

Run after every change or before pushing new feature

🛠️ General Testing Tips With Timer Console Development

Test often: Write tests as you write code (test-driven development)

Isolate units: Avoid relying on global state or external systems for unit tests

Automate: Add your test scripts in ./build.sh

Mock dependencies: For integration testing, mock out parts of your code (e.g., nlohmann)

Install gtest

When running build.sh gtest should be installed automatically for you and the tests already associated with the application should run. No further configuration should be necessary until new tests are created and need to be added to build.sh

gtest intstall

📖 How to use

Check out the docs for developers if you are interested in learning how to use this code or develop further with this project.

These docs where generated by Doxygen.

Docs

About

Timer, alarm clock && stopwatch in the terminal

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published