RGSoC - Thank you heart
November 2017
Heart shapped interactive photo collage
[WIP] As a way to thank everyone involved in Rails Girls Summer of Code 2017, I've created a heart shapped interactive photo collage, to be populated with photos.
Technologies: HMTL, CSS, JavaScript
API aggregator
November 2017
Aggregate different services that interact with public APIs
This website agreggates 3 different projects that deal with public APIs: wikipedia, based on a challenge from Free Code Camp; twitch tv, also from a Free Code Camp challenge; NASA, built on the scope of the JavaScript and React for Developers course.
Two of these projects were developed with pure JavaScript, using the Fetch API.
Technologies: HTML, CSS, Bootstrap, JavaScript, Fetch API
Go Walks Portugal
September - November 2017
Website development
Go Walks Portugal is a walking tours company from the center of Portugal.
As a freelancer, I've developed their current mobile-friendly website using Ruby on Rails (WIP).
Technologies: Ruby on Rails
Daqui para Li
September 2017
Development of landing page
Daqui para Li is a Portuguese traveling agency. Besides the normal services of this type of business, this agency also offers inclusivity services.
Launched in October, I had the opportunity to develop their landing page.
Technologies: HTML, CSS, Bootstrap, JavaScript, jQuery
SECURIS: Fatima
April - May 2017
Project SECURIS: Fatima landing page and website
SECURIS: Fatima was a project concerned with the security of its users, developed for the visit of Pope Francis to Fatima, a city in the center of Portugal, on May 2017.
On this project I had the opportunity to develop a bilingual landing page and a simple mobile-friendly website with Ruby on Rails.
Technologies: Ruby on Rails
Local Weather
April 2017
Display the Local Weather
The goal of this website, developed as a challenge from Free Code Camp, was to show the local weather, based on the HTML5 Geolocation of the user, and present a different icon or background image depending on the weather.
As an added challenge, I've developed this project without relying on any framework, using only HTML and CSS.
Technologies: HTML, CSS, JavaScript
How I met your mother
February 2017
Random quote machine
How I met your mother quotes was developed as part of a challenge from Free Code Camp. The goal was to develop a random quote machine and I choose this series as theme.
This project gave me a chance to experiment with basic API usage, DOM manipulation with jQuery, parsing JSON files and query parameters.
Technologies: HTML, CSS, Bootstrap, JavaScript
Entity Linking for fraud detection
February - June 2016
Data Visualizations for Entity Linking in eCommerce
As part of my master's thesis, I've worked on the design, implementation and testing of data visualizations for Entity Link Analysis for a fraud detection company. The purpose was to identify Fraud Rings: groups of people actively collaborating to commit identity fraud.
This type of fraudsters usually combine different real identifiers to create multiple synthetic identities to commit frauds. Entity Linking is data-analysis technique that explores associations between related entities, in order to identify patterns of behaviour that come across as suspicious.
Using the D3.js framework, I've developed an exploratory tool to test different data visualizations over transaction's information.
Technologies: Java, mySQL, Javascript, D3.js
Hanami's mailer gem
July - September 2015
Development of a mailer gem for framework Hanami
As part of the Rails Girls Summer of Code program, I had the opportunity to work in the Open Source framework Hanami. Hanami is a modern web framework for Ruby. My team's goal was to develop a gem to handle mail.
All the development was done based on pair programming and test driven development.
Technologies: Ruby, TDD
TV Series
October - December 2015
Semantic Web system for TV Series based on information from IMDB
This semantic web system provides information regarding TV Series. The onthology was built with OWL DL, using Protégé and Apache Jena. A Python web crawler collects information from the IMDB and Wikipedia websites to populate the triple store. The query language SPARQL is used to manipulate the stored information. A web interface displays the information and offers semantic searches capabilities and presents recommendations based on the user's search history.
This project was developed on the scope of the Web Semantic course taught on my master's degree. The core work was developed through pair programming and I was responsible for the development of the web interface while my partner worked on the web crawler.
Technologies: OWL DL, Protégé, Apache Jena, SPARQL, Spring, Javascript, Bootstrap
Insulin dose calculator
March - May 2015
Web service, N‐Version programming based, insulin dose calculator for patients with type‐2 diabetes
Patients with type-2 diabetes might need periodic insulin injections. The adequate dosage of insulin to take in a given moment needs to be calculated with accuracy. This web application calculates this critical dose though n-version programming. N‐Version programming is a technique used in highly critical systems that achieve high reliability through software redundancy.
This project was developed in the scope of the Software Quality and Dependability course, lectured on my master's studies, and each group of students was required to develop a web service with calculations capabilities of insulin doses. Using the results calculated by N versions of these equivalents web services, a voting system decides on the output and the result is displayed on a web interface.
My major role in this three-person project was the development of the web interface.
Technologies: Java, EJB, Bootstrap, SPIN Model checker
iJava Compiler
March - May 2014
Compiler for the iJava language
Considering iJava (imperative Java) a subset of the Java (version 5.0) language, this project englobes the development of a compiler for that language.
The iJava compiler was implemented in C, using lex and yacc as lexical, syntax and semantic analyzers. The iJava code is converted into the intermediate representation LLVM and, using the appropriate flags, the abstract syntax tree and the content of the symbol table can be displayed.
This project was developed with pair programming, using unitary tests provided on Mooshak for validation, on the scope of the Compilers course from my Bachelor's studies.
Technologies: lex, yacc, C
Star Wars Bejeweled
December 2012
3D Java implementation of the Bejeweled game, Star Wars version
Developed on the scope of the Oriented Object Programming course from my Bachelor's degree, this project consisted in developing a game, similar to Bejeweled, where a user can switch adjacent pieces in a grid to create sets of three or more similar pieces. The main requirements were: implement two game modes - by score and by time; generate different power-up pieces when different combinations of more than 3 pieces were made; save highscores on file; be able to customize the grid size.
Set on the Star Wars universe, using spaceships as pieces, this game was developed by a group of three where I was responsible by the navigation and the game engine.
Technologies: Java
Game of Life
November - December 2012
Multiplayer version of Conway’s Game of Life implemented with processes and threads
Conway’s Game of Life is a zero-player game. The world is represented by a grid where each cell can either be dead or alive. The state of liveness of a cell at each iterative generation is dependent of the state of the cell and the surrounding ones at the previous generation.
On this project, developed for the Operative Systems course on my Bachelor's studies, the game was implemented in C using processes and threads, by pair programming. The Processes implementation uses shared memory, to share data between processes, memory mapped files to manipulate files on disk collaboratively between processes and POSIX semaphores to control accesses to shared resources. The Threads implementation uses concurrent programming and synchronization primitives such as semaphores and condition variables.
Technologies: C
Lovesick Box
March - May 2012
Adobe Flash multimedia application
Lovesick Box is a move-box Flash game inspired by the movie 'Eternal Sunshine of the Spotless Mind'. The game, narrated in the first person, follows the story of someone who decided to erase the memory of his past lover, after a complicated breakup. In each level, the player has to solve a brain-teaser by arranging the mobile boxes in the scenario. However, as the story unfolds, he rediscovers his love for the other person, changing the dynamics of the game as he resists the procedure.
This game, developed on the scope of the Multimedia course lectured on my Bachelor in Informatics Engineer, was the first major project I've worked on. It was a challenging project, since this was a course far too advanced for a beginner. Build by a group of 3, I was responsible for the creative content - story, scenarios, level design - and by developing the initial and final animations.
Technologies: ActionScript 3.0, Adobe Flash, Photoshop and Illustrator