A TUI (Terminal User Interface) Gemini-based AI chatbot project made in C++.
This project is created as a requirement to complete the University of Mataram's Algorithms and Programming 2025 practicum.
Licensed under the MIT License because we love open-source!
| Category | Library | Description and/or Necessities |
|---|---|---|
| STL | Built-in C++ standard library components | |
| (Standard) | <iostream> |
Input/output stream (STDIN & STDOUT) |
<sstream> |
String streams for receiving HTTP responses | |
<vector> |
Dynamic arrays without fixed sizes | |
<conio.h> |
Keyboard-based menu navigations | |
<iomanip> |
To adjust UI elements to our liking | |
| Third-party | Custom-made libraries installed through vcpkg |
|
| (Custom) | cURLpp |
C++ wrapper for libcurl for HTTP requests |
nlohmann-json |
JSON parsing and serialization library | |
dotenv |
Secret environment variables |
GEMINI_API_KEY(API key for the Neuro chatbot)TITLE_KEY(Optional, for the title maker - we included this to not get rate-limited)DEFAULT_PERSONALITY(Default personality for Neuro)TITLE_PERSONALITY(System instructions for the title maker)AI_BASE_URL(Base URL for HTTP request to Gemini AI's API, currently using 2.0 flash model)
To build Neuro-CPP on Windows (with vcpkg), run:
mkdir build
cd build
cmake .. ^
-DCMAKE_TOOLCHAIN_FILE="<PATH_TO_VCPKG>\scripts\buildsystems\vcpkg.cmake" ^
-DCURL_INCLUDE_DIR="<PATH_TO_VCPKG>\installed\x64-windows\include" ^
-DCURL_LIBRARY="<PATH_TO_VCPKG>\installed\x64-windows\lib\libcurl.lib" ^
-DCMAKE_POLICY_VERSION_MINIMUM="<MINIMUM_ALLOWED_CMAKE_VERSION>"Then, after doing some coding, perform
cmake --build . --config Releaseto compile the program. It shall reside within build/Release/ along with the installed libraries.
Do note that dotenv.h might not be able to read your .env inside said directory.
You may configure the following files in your .vscode/ directory to create a debugger:
launch.jsontasks.json
- I Nyoman Widiyasa Jayananda (Schryzon) - F1D02410053
- I Kadek Mahesa Permana Putra (Vuxyn) - F1D02410052
- Samara Wardasadiya (samarawards) - F1D02410023
- ✅ | Approved by assistant YNK and Senior Kholilluloh.
- ✅ | Done, ready for improvement!
