Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/m7moudgadallah/cpp-library-system
This is simple library system project using cpp
https://github.com/m7moudgadallah/cpp-library-system
cpp filehandling oop-principles
Last synced: about 5 hours ago
JSON representation
This is simple library system project using cpp
- Host: GitHub
- URL: https://github.com/m7moudgadallah/cpp-library-system
- Owner: m7moudGadallah
- License: mit
- Created: 2024-08-01T14:41:31.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-08-02T16:16:00.000Z (3 months ago)
- Last Synced: 2024-08-10T17:59:12.266Z (3 months ago)
- Topics: cpp, filehandling, oop-principles
- Language: C++
- Homepage:
- Size: 3.83 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CPP Project Boilerplate
This is a boilerplate for a C++ project.
## Requirements
Have a quick look at system requirements. please refer to [requirements.md](./docs/requirements.md).
## Design
### Console Menu Interfaces
Have a quick look at menu interfaces. please refer to [console-menu-interfaces.md](./docs/console-menu-interfaces.md).
### UML Class Diagram
Have a quick look at UML class Diagram. please refer to [cpp-library-system-uml.pdf](./docs//cpp-library-system-uml.pdf).
## Setup
### Prerequisites
Ensure you have the following tools installed on your system:
1. **C++ Compiler and Build Tools**
You can install either `build-essential` (which includes `g++`) or `g++` directly.
- Option 1: Install `build-essential`:
```sh
sudo apt update
sudo apt install build-essential
```- Option 2: Install `g++` directly:
```sh
sudo apt update
sudo apt install g++
```2. **GDB (GNU Debugger)**
```sh
sudo apt install gdb
```3. **CMake**
```sh
sudo apt install cmake
```4. **clang-format**
```sh
sudo apt install clang-format
```5. **Visual Studio Code** with the following extensions:
- C/C++ by Microsoft
- CMake Tools by MicrosoftTo install the C/C++ extension:
1. Open Visual Studio Code.
2. Go to Extensions view by pressing `Ctrl+Shift+X`.
3. Search for `C/C++` by Microsoft and click Install.To install the CMake Tools extension:
1. Open Visual Studio Code.
2. Go to Extensions view by pressing `Ctrl+Shift+X`.
3. Search for `CMake Tools` by Microsoft and click Install.## How to Compile, Run, Clean, and Debug the Project
### Compile the Project
To compile the project, use the `make` command. This will generate the executable file in the `output` directory.
```sh
make
```### Run the Project
To run the compiled executable, use the make run command. This will compile the project (if necessary) and then run the executable.
```sh
make run
```### Clean the Project
To clean up the build files, including object files and the executable, use the make clean command.
```sh
make clean
```### Debug the Project
Make sure you have installed GDB on your system. To debug the project.
#### Debugging using GDB in the Terminal
1. Compile the project with debugging symbols.
```sh
make
```2. Run `gdb` with the executable.
```sh
gdb ./output/main
```3. Inside gdb, set breakpoints and run the program:
```sh
(gdb) break main
(gdb) run
```4. Use typical gdb commands to step through the code, inspect variables, etc.
```sh
(gdb) step
(gdb) print variable_name
```#### Debugging using Visual Studio Code
We can also debug the project using Visual Studio Code. To do this, follow these steps:
1. Open the project in Visual Studio Code.
2. Open the file you want to debug.
3. Set breakpoints by clicking on the left margin of the editor window.
4. Press `F5` to start debugging.
5. Use shortcuts like `F10` to step over, `F11` to step into, etc.
6. Use the debug panel on the left to inspect variables, call stack, etc.## File Structure
The project has the following file structure:
- `src/`: Contains the source files (`.cpp`).
- `include/`: Contains the header files (`.hpp`).
- `output/`: Contains the compiled executable.
- `lib/`: Contains third-party libraries (`.a` , etc...)
- `Makefile`: Contains the build, run, clean, and debug commands.
- `.clang-format`: Contains the formatting style for clang-format.
- `.vscode/`: Contains the Visual Studio Code settings and configurations for C++.
- `docs/:` Contains the project documentation.## Disclaimer
This project is for educational purposes only. It was created as part of a course on C++ programming by Dr. Mostafa Saad Ibrahim on [Udemy](https://www.udemy.com/course/cpp-4skills/)