On this page I am gathering some of my programming projects. For publicly avaliable programs, you can go to the website and for all the projects you can read extensive description below.
Click on the project name to jump to description
My girlfriend Kate loves learning languages, and once she complained that she does not know any good programs to learn words for Android. I do not know how to code for Android, so I decided to develop a web-based application that would make task of learning other language vocabulary easier.
This application allow user to create multiple dictionaries for multiple languages he or she is learning (for example, English-Italian or Spanish-Chineese). After user adds some words in each of the dictionaries, he can start to play language-learning game: user is asked how the word should be translated, he or she tries to guess, the app shows the answer and user clicks wheather he guessed correctly or not.
Using this data, app calculate the knowledge level for each word, which allows to ask user about words he or she knows worse more often. User also has an option to prioritize time instead of knowledge level so that words which he did not see for a long time would be presented first.
Website alows multiple users and has an interface both for computers and mobile devices. You can try using it on learnwords.torba.me
I love to travel and I love to capture the moments from my journeys. However, I did not find any suitable app or website to do it. I used (and still use) Swarm to check in when I travel, but it does not allow to write stories or attach pictures. Moreover, it does not allow to list places I've been in before I started using the application. I also tried to write about my travels in social networks, but they do not provide any meaningful navigation by place. Thus, I decided to write my own system.
traveling.torba.me is both scratch map where we (me and my girlfriend Kate, who also loves to travel) can places we ever visited and the blog, where we can write about adventures and attach pictures. Blog posts can then be attached to places, which makes navigation very convenient and exactly what I was looking for.
The story of how I programmed it is quite interesting. I started with making it a static site, but to add stuff I had to edit several xmls and then re-build the site (the re-building program would generate all the static files). Then we decided that some kind of web-editing would be great, and so I added it: now you could access and edit appropriate xml-s in user-friendly web mode and then order website rebuilt from the web interface. As you can imagine, it meant two different site navigation systems: for user to see the content and for administrator to be able to edit xmls and structure. Moreover, as I kept adding features, the code kept growing. At some point it became extremely complex and un-readable and I decided to rewrite the system.
I used Django to implement the website from scratch (I learned Django while implementing this project). Now it has much better design: the information is stored in database and is dynamically loaded with the web page. Images are stored using Amazon AWS S3 and database is backuped every day. The admin interface does not require any rebuilds and became much more convenient. While implementing the website, I applied some best design practices and it is pays: the site is extremely easy and painless to maintain.
Now me and Kate write blog posts, add pictures and mark placed we visited so that not only the memories are saved forever, but other people can read about our adventures. It is also integrated with Twitter via Twitter cards (follow us) and Facebook with like/share.
This is a useful tool that allows university students to record their grades to convenient table and to track their progrss in terms of total score throughout the quarter. Students can create a table with sections (Quiz, Homework, etc) for several classes and enter the grades they already know. Based on these grades, the system estimated the remaining grades and approximates possible final score for the whole quarter.
Moreover, the system allows student to "play" with their future grades to see what will happen if he or she gets some grade for future assignments. The system also supports dropped lowest grade in section (for example, lowest quiz score dropped) as it is quite common parctive.
The student may not want to draw the whole table from the scratch each quarter, and thus there is a function to send a permanent link to the gradebook to student's email so that he or she can access it for the whole quarter.
I once went to Metropolitan Museum of New York and spent some time in the modern art section. Some people would argue that modern art bears deep meaning, but what attracts me in it is aestetics. I decided to try to write a program that generates modern art randomly, just to assess wheather a program can generate something pleasing for my eye.
modernartgenerator.com is a website that shows the result of my effort. The site is more of an interface for an actual algorithm. As of writing this introduction, there is only one algorithm added to the website, but I will keep adding more. Meanwhile, you can play with the existing one.