Skip to content
View TrifanBogdan24's full-sized avatar
  • Faculty of Automation and Computer Science, UPB
  • Bucharest, Romania
  • LinkedIn in/trifan-bogdan

Block or report TrifanBogdan24

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
TrifanBogdan24/README.md

Hi My name is Bogdan Trifan

Avento GIF

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

Skills

CC++GitJavaJavaScriptPythonRustGNU BashVS CodeNeovimVimHTML5CSS3NodeJSOracleMySQLPostgreSQLArduinoDockerLinux

Socials

My GitHub Stats

TrifanBogdan24's GitHub stats

Top Languages

Profile Stats with Charts

Top Repositories























πŸ‘¨β€πŸ’» My portofolio (projects)

Linear Regression - Gradient Descent Algorithm in Scala

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 the CSV file)
    • Initializes a vector of parameters (W = weights).
    • Iteratively computes the prediction Y as Y = X * W over and over again, untill the error (the difference between the prediction and the actual output vector, based on the CSV file) has an acceptable value.
  • 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.

πŸ—„οΈ My Scala DataBase

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.

πŸ€– Embed YouTube Card Generator (Method 1)

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:

img

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.

πŸ€– Embed YouTube Card Generator (Method 2)

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:

img

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.

🌐 HTTP client to a Book API

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.

Network Protocols TUI Quiz

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

Preview/Results: gif

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).

Pinned Loading

  1. EmbedYT-Card-Generator-M1 EmbedYT-Card-Generator-M1 Public

    Generates HTML / MarkDown code for a YouTube clickable card.

    Python

  2. Customizable-EmbedYT-Card-Generator Customizable-EmbedYT-Card-Generator Public

    Generates HTML / MarkDown code for a (customizable) YouTube clickable card

    Python

  3. nalgebra-functions nalgebra-functions Public

    Approximate calculation integrals (using Numerical Methods).

    Rust 1

  4. nalgebra-statistics nalgebra-statistics Public

    rust library for algebric statistics opperations

    Rust

  5. PythonBox PythonBox Public

    UNIX operations, working with files in Python

    Shell