Vassilen Vasevski
October 2019
In October 2019, I redesigned the personal website of the Bulgarian artist Vassilen Vasevski. His previous website was developed in 2006, so a new one was needed. The new website is responsive and supports three viewports - mobile, tablet and desktop. The design is clean, so that the user can focus on the content. It also uses CDN, so that the content can be delivered faster.
Geosoft
August 2019
The new website of Geosoft LTD was designed and developed by me. It replaced the previous website, as the client was looking for a simpler design with a less need of maintenance.
Learning Spaces
2019
“Learning Spaces” is a group project which I had to work on during my second year at University. It was part of the “Software Hut” module which meant to mimic real world-environment.
The assessment was comprised of several different components, such as team organisation and management, progress with implementation, documents (story cards, requirements documents, database design, state-machine diagram, mock-ups and manuals), unit and system tests, quality assurance task, communication with the client throughout the semester, the quality of the system (ease of use, completeness, innovation and robustness), as well as the overall impression of the system.
Our client was the University of Sheffield Library who was looking to replace its current static website with a dynamic application. “Learning Spaces” is about helping students finding their preferred study space, based on location and filters. We were shown a similar system, made by another UK-based university, as an example of what was expected as a final result. Having seen the example provided, I wanted to build an app which would provide similar functionality in a simpler and more effective way, while also providing familiar experience to the University of Sheffield students.
The project was built with Ruby on Rails and it uses different web technologies, such as SCSS, HAML and JavaScript. It was designed and developed in a way that would allow an easy expansion, both content and feature-wise. User, admin and developer manuals were written and delivered to the client, so that other developers can implement new features and make changes, if needed. Apart from communicating with the client, eliciting requirements, designing and building the system, writing manuals and managing the team, I also took part in the quality assurance process, during which I had to test a system, built by another team, and had to provide a detailed feedback about it.
As we had to work for the library team, we had different staff members attending different meetings, which required finding the best way of building a system that could satisfy them all. The good communication skills with all of the clients were prised during the feedback session and were also given as a reason why other teams might have failed to live up to the expectations. The client also mentioned the poor design choices and feature implementation of the other two teams who were working on the same project. The quality of my design was pointed out as the biggest advantage of our submission and I got 97%. As being the best one, our project was awarded and also a customer satisfaction of 100% was achieved.
You can read more about the project here.
Tehniki
January 2019
Nikolai Nikolov (TehNiki) offers electrical and plumbing services in Bulgaria. I made his first website back in 2012. It was not responsive, so he needed a new one which I developed at the beginning of 2019.
University Managment System
2018
During the second half of the Autumn semester in my second year at Uni, I had to work on a group project, which was about creating a University Management System. We had to come up with a robust design that had to be represented using different UML diagrams - use case, class, database and state machine. Building a secure and efficient database was a major part of the design process. My main responsibility was the GUI, although I have contributed to all stages - the design, the actual implementation and the testing.
The system supports users with different roles - administrators, registrars, teachers and students. All of them have different privileges. The administrators are responsible for creating users and assigning roles, adding departments, degrees and modules. Registrars deal with students - they make new student registrations and assign optional modules to them. Teachers can add grades and decide if the student might progress, based on the student's status and grades. The students can see theirs personal details and status - registration number, modules and grades, or they can see their degree outcome if they have graduated.
The GUI was built in a way that it would prevent all possible user mistakes - such as trying to delete a student without it being selected or changing grades for a previous year of study. What is more, all of the user input is validated and only accepted if it is sensible. As MySQL was used for the database implementation, different security risks had to be considered. Formal and informal methods of verification and testing were used to ensure correctness. An individual grade of 95% was achieved.
Optical Character Recognition System
2018
For the assignment I had to implement the classification stage of an optical character recognition (OCR) system for processing scanned book pages. The test data has been artificially corrupted, i.e. random offsets have been added to the pixel values to simulate the effect of a low-quality image. The classifier should use a feature vector containing no more than 10 dimensions and should be able to operate robustly even on low quality, 'noisy' image data. I considered using two dimensionality reduction techniques, LDA and PCA, but decided to implement PCA. I implemented a vectorised k-nearest neighbors classifier which could classify the data in a few seconds. My system managed to classify 40% of the characters on the noisy page, a sample of which is shown above. The assignment was awarded 82%.
Tweet A Pie
2018
The planning of the project started during the Autumn semester when we were assigned to different teams and had to meet a client who provided us with the requirements for the system. Apart from the requirements given to us initially, we offered additional features for better customer experience.
The implementation started in February. Although my main responsibility was the user interface (which was praised several times in the feedback), I took part in the development of all aspects of the software. Apart from that, I was actively supporting and motivating the team members, so that we could do as well as possible.
HTML5, CSS, JavaScript, Sinatra, SQLite and Ruby were used. GitHub was used for version control and Slack for team communication. As ordering of the pies was meant to be done via Twitter, Twitter API was utilised. The software supports two stores - each one with different menu and different users. Apart from the customer accounts, there are admins, who can change the menu, assign offers and delete users. The order handlers are responsible for taking orders from Twitter and interacting with the customers.
The testing was done using Cucumber and manual tests. SimpleCov was used for the test coverage. A server-side verification was implemented, so that the system accepts only sensible input and also for prevention of SQL injections.
I really enjoyed working on the project, as I learnt a lot of things in a short period of time. I got experience building apps using the MVC framework and further developed my teamwork skills. The team mark achieved was 88% and the individual one - 94%.