Software Engineer Student
- π I'm based in Bucharest, Romania
- π§ I'm learning JavaScript, Local Area Networks, OpenGL, Parallel and Distributed Programming, Regular Expressions, Embedded
- π€ I'm open to collaborating on Open Source PRs, DevOps projects
Check out the source code here: https://github.com/TrifanBogdan24/Linear-Regression-Algorithm-Scala.git
Linear regression is a Machine Learning technique that finds the best-fit line through a set of data points, minimizing the distance between the points and the line to predict future values.
This project demonstrates a Linear Regression model
implemented in Scala,
featuring Gradient Descent
as the optimization technique.
-
Data Loading and Preprocessing: Reads data from a
CSV
file with attributes as columns and rows as individual entries. It selects only relevant columns to train the model. -
Dataset Splitting: Splits the data into training and validation sets. Typically, 80% of data is used for training, and 20% for evaluating model performance.
-
Matrix Operations and Error Propagation: The algorithm is based on basic Linear Algebra and Numerical Methods. It converts the dataset to a numerical matrix for operations like addition, subtraction, and multiplication. Uses Scala's
Option
type for handling potential errors in calculations. -
Gradient Descent Algorithm:
- Initializes a matrix for training data (
X
= the input vector, based on theCSV
file) - Initializes a vector of parameters (
W
= weights). - Iteratively computes the prediction
Y
asY = X * W
over and over again, untill the error (the difference between the prediction and the actual output vector, based on theCSV
file) has an acceptable value.
- Initializes a matrix for training data (
-
Functional Programming Principles: Implements functional paradigms by using immutable variables, and error handling with
Option
. -
Visualization: Includes a
gnuplot
script to visualize regression results, comparing actual vs. predicted values in 3D space.
The primary method, regression
, accepts parameters such as dataset path, selected features, learning rate, and number of iterations. It outputs a tuple containing the final parameters and error metrics.
Moreover, in order to automate the process of testing the Scala
source code with sbt
,
I implemented a CI
pipeline on GitHub Actions
specifically for this purpose.
Checkout the source code here: https://github.com/TrifanBogdan24/My-Scala-DataBase.git
Implemented a Query Language inspired from SQL
,
which uses a DataBase implemented by me, written in Scala.
My DataBase reads a CSV
file and stores its information in a table-like data structure.
The query language serves as an API to the DataBase for a wide range of table transformations, implemented as functions.
In the implementation of the query language,
I focussed on including functionalities similar to those in SQL
,
as well as on error handling using Scala's Option
ADT.
Moreover, in order to automate the process of testing the Scala
source code with sbt
,
I implemented a CI
pipeline on GitHub Actions
specifically for this purpose.
Check out the source code: https://github.com/TrifanBogdan24/EmbedYT-Card-Generator-M1.git.
π€ Automate the boring stuff with Python!
A CLI tool written in Python with pytube
/pytubefix
module.
The script takes as argument in the command line an URL
and returns the HTML code of a clickable YouTube card.
Both in browser and in MarkDown preview, the result of rendering the generated HTML code will look like this:
This tool is at the most powerful when used with other CLI functions, like redirection or copying directly to clipboard.
You can find detailed information about these features in the documentation.
Check out the source code: https://github.com/TrifanBogdan24/EmbedYT-Card-Generator-M2.git.
π€ Automate the boring stuff with Python!
A CLI tool written in Python with pytube
/pytubefix
module.
The script takes as argument in the command line an URL
and returns the HTML code of a clickable YouTube card.
Despite the similiraties with the above project, this Python script comes with a game changing feature: rendering the generated HTML code works on
GitHub
.
The template for the YouTube card is built on the ytcards.demolab.com API, by simply passing parameters (video ID, title, duration)to the URL https://ytcards.demolab.com/.
Either on a web browser or on a MarkDown previewer, the result of rendering the generated HTML code will look like this:
This tool is at the most powerful when used with other CLI functions, like redirection or copying directly to clipboard.
You can find detailed information about these features in the documentation.
Check out the source code: https://github.com/TrifanBogdan24/HTTP-client-to-a-BookAPI.git
A CLI tool for a HTTP client written in C.
The user interacts via the command line with the server's RESTful book API,
located at 34.246.184.49
.
The web client primarly uses the HTTP methods GET
, POST
, DELETE
and uses JWT
(JSON Web Token) for keeping the user authenticated on the server.
Check out the source code: https://github.com/TrifanBogdan24/Network-Protocols-TUI-Quiz.git
π¨βπ» A CLI TUI
tool written in JavaScript
with NodeJS
,
leveraging the power of @clack/prompts
to deliver an interactive quiz experience right in your terminal.
- CLI = Command Line Interface
- TUI = Terminal User Interface
I choose Clack
because it's a lightweight library,
with an easy to read API that has a lot of built in features,
great to use in JavaScript
TUI app.
import { intro, isCancel, cancel, note, outro, select, spinner, text } from '@clack/prompts';
The app also uses π³ Docker
in order to manage all npm
dependencies for you
and to run the NodeJS
project in a Docker container
as smoothly as possibly
(without requiring you to install anything at all).