Projects

Here is a selection of some of the best projects that I’ve worked on over the past few years, sorted randomly. (To view other projects which are not included here, you can view my old portfolio, posts archive or GitHub.) This page was last updated: 19/12/2016.

Simple Tea Timer Android App [Java]

https://play.google.com/store/apps/details?id=com.marianlonga.simpleteatimer

This is an Android application which I made and published. Since I already had some background in Java, I decided it might be cool to learn to program Android applications. So, I decided to make this app as a practical way to learn various Android concepts. The app has 3 presets for timing the infusion of green, black and herbal tea, and an option to select custom time. The progress bar and timer show the remaining time. I even got positive reviews from some random people who installed the app!

Sudoku Solver [PHP]

http://marianlonga.com/sudoku/

This is a program I made in PHP for solving Sudoku. The program works in such way that it first writes down possible numbers for all empty fields. Then it uses strategies inspired by human solvers to solve the puzzle. For example, the program goes row after row, and if it finds that a certain number can only fit into one field in that row, it fills the number in. The same process is then repeated for individual columns and squares.

Addition Snake Game [Java]

https://github.com/marianlonga/Addition-Snake

This is a math game I made in Java for a Computer Science project. It’s a classical Snake game, but modified so that children can use it to learn addition in a fun way. The snake may only collect the food with a number which is the sum of the 2 numbers on top of the screen. After eating foods, problems with different sums appear, the snake gets longer and faster, the foods rearrange, and the score increases. When asked, the kids said they like it. Also, I learned a great deal of Java along the way.

My LCD Library [C]

https://github.com/marianlonga/LCD‐library

Since I couldn’t find a good LCD library for my project on the Internet, I decided to make my own instead, and learned a great deal more than if I had just used a ready-made one. The library is written in C and interfaces the communication between a PIC microcontroller and an LCD display. The library has functions for displaying characters, strings of text and numbers, and also functions for turning the display on/off, setting cursor position, cursor blinking, and many more. I’ve open-sourced the project by uploading it to GitHub where other people can download and use it.

Program for Drawing Fractals [Java]

https://github.com/marianlonga/Turtle

Once on a Computer Science lesson, we were supposed to write a code for drawing fractals using the Imagine Logo program. However, this program wasn’t available for my platform, and so I decided to make a similar program myself using Java. It’s based on an object Turtle, which can move forward a given distance, rotate by a given angle, change the pen’s color, put the pen up/down to draw using visible or invisible color, “teleport” to a given location (x,y) and set the angle to a specific one. Using these functions, I’ve drawn fractals such as Koch’s snowflake, Sierpinski triangle and tree fractals.

Guitar Songbook [PHP/MySQL/FacebookAPI]

http://mysongbook.io

This is a web application I made during the IChack 2016 competition (Imperial College’s hackathon) for organising guitar songs, for which I won the Best Newcomer Prize. To add a song, you first login through Facebook and then just paste a URL to a website containing the chords for a guitar song. The website is then parsed and relevant data such as artist, title and content of the song are extracted from it and saved to a database. You can then view and delete your added songs and download all of them as a songbook in PDF format for printing. The chords are also highlighted, making it easier to play on a guitar. In the process, I learned to work with the Facebook API, how to parse HTML using DOM in PHP, and improved my REGEX knowledge.

BratMUN 2014 Website [PHP/MySQL/AJAX]

http://bratmun.sk

This is the website of the Bratislava Model United Nations 2014 conference, which some of my classmates and I helped to organize (my position was Head of IT). I created this website from scratch together with one of my friends ‐ he worked mostly on the vector graphics, while I did mostly coding and also some design. This was a great experience for me to improve my WordPress, PHP and design skills. I was also responsible for the registration system and online voting system, where I’ve learned a lot about MySQL and AJAX. _Please note that the current bratmun.sk website is different from the version that I worked on._

Pong Game [Java]

https://github.com/marianlonga/Pong

This is a Pong game I made in Java, where the player moves the paddle up and down by the position of their mouse and tries to hit the ball so that it will touch the red space behind the opponent’s paddle, by which the player scores a goal. The opponent is a computer, which I programmed to follow the trajectory of the ball in the vertical direction, but with a certain maximum speed, so that the computer won’t be able to catch every ball and thus will be beatable by a human.

Online Photo Portfolio [HTML/CSS/PHP/MySQL]

http://marianlonga.com/online_photo_portfolio

I noticed that the photo gallery on my website was quite disorganized, and since most of the galleries offered online were either paid or didn’t have the features I wanted, I decided to make myself a new one instead. So, as part of my Computer Science IA, I made myself a photo gallery in PHP, MySQL, HTML and CSS, where I can upload my photos and visitors can sort and view them according to various criteria. For example, the photos can be sorted by date, quality and title, and the visitors can choose only to display photos from a certain date and time range, by a certain subject (e.g. animals), quality (1-5 stars), shutter speed, aperture, ISO and color. After clicking on a photo, the photo is enlarged.

Physics Training Website [LaTeX/jQuery/MySQL/PHP]

http://physics.training/

This is a website I’ve made about physics problems. I used to occasionally upload there a new physics problem together with my solution. This was a great way for me to learn physics, solve interesting problems, and learn about technologies such as LaTeX (in which I typeset the formulas), MySQL (the problems are stored in a MySQL database), jQuery and PHP. It can also hopefully help others trying to solve these problems or just help them to improve their physics problem solving skills in general.

Regular Polygons Produced by Complex Numbers [Mathematica]

http://marianlonga.com/assets/docs/Complex-Shapes.pdf, http://marianlonga.com/assets/docs/Complex-Shapes-Mathematica.nb

As part of my Math IA, I decided to do an investigation into how complex numbers can be used to produce regular polygons with various properties. After completing the whole investigation, I came up with the following equation whose solutions for form the vertices of a regular n-gon with edge length , “naturally” rotated, translated so that its bottom edge starts at origin, and further rotated by some angle in degrees and further translated by a given amount of units to the right and another amount of units upwards. During the process, I also learned to work with _Wolfram Mathematica®_ where I tested the equations, and with _Inkscape_, a vector graphics editor.

Accuracy of Distance Sensors (Extended Essay)

http://marianlonga.com/assets/docs/Extended-Essay.pdf

While working on my Extended Essay in Physics, I researched how different factors affect the accuracy of various distance sensors. I used 3 ultrasonic and 2 infrared sensors to make this moving platform, and tried to find how their accuracy depends on factors like distance from an object, the angle to an object, the object’s color and its material. The sensors took readings every few milliseconds and transferred them through an Arduino to my Processing program, which saved the data and displayed them on a graph. I found this whole experience very exciting and enjoyable since I haven’t done any “real” research before.

Arduino-Based 4-Wheeled Robot [Arduino C]

This is a 4‐wheeled robot I made, utilizing Arduino, Motor Shield, 12V battery, 4 (hidden) DC motors, and an ultrasonic distance sensor. I programmed the robot to move forwards, until it detects a wall using its ultrasonic sensor, at which point it would rotate and continue going forward until it stops before another wall, and so on. Having very little experience in electronics before, I’ve learned a lot of new things on this project, many essential for my further electronics projects.