top of page

LATEST PROJECTS

Project | 02

Project |02 AEIST Mobile

​

AEIST Mobile was an idea that I had during a department meeting. It consists on a platform that allows people to see information about AEIST's events via a mobile application. I had this idea during a team meeting when we were discussing news ways of communication with IST's students.
The platform is divided in two main modules: the backoffice and the mobile app.
The backoffice is invisible to the final user and is were the administrator publishes the information about the events. 
The mobile app is were the final user (the student) sees the information about events. Currently, the mobile app is being developed for Android in order to create a Minimal Viable Product. iOS version is planned but on a latter stage of the project



Tools used: Google App Engine (Python), HTML 5, JavaScript and CSS3 for the backoffice. Java, SQLite and JSON for the Android version

Project |03 Mini Google

​

 This project was developed during the Cloud Computing course. The main goal was to develop a prototype of the Google search engine (front end, crawler, database to store webpages, index generation using the PageRank algorithm).

The project was divided in two parts.

In the first part, we built our solution using Hadoop for index generation, Tomcat to host the frontend and a simple java program to do the crawling. The second part consisted in port our previous solution to a Cloud platform. We choosed Google App Engine. We had to make some code refactoring especially on the index generation since the MapReduce library was in Python.



Tools used: Eclipse, Java, Tomcat, GWT, Hadoop, Google App Engine, JSON, Google App Engine MapReduce Python Library, Google App Engine ProtoRPC Library

Project |04 VeriSec

​

This project was develop on the Applications and Implementation of Cryptographic Algorithms course.

​

The goal of this project was to develop a notary service based on the person's citizen card (a Java card). On this project we used the Portuguese citizen card and a middleware to interact to it that allowed us to use cryptographic functions.

The project was divided in two main modules. The first module consisted on a desktop application with the card reader. The second module was a server that contained all the users data . SOAP messages were exchanged between the desktop app and the server. Public and private keys were used to ensure authentication, sessions keys for confidentiality, message hashes for integrity and a random number for freshness. We implemented a variant of the Diffie-Hellman protocol that authenticated each node to generate the session key.

​

Tools used: Netbeans, Java, GlassFish Server, SOAP, XML, Java Security API (for Certificates and Keys), Portuguese Citizen Card Java Middleware, Keystores

​

This is just a little sample of my work! Find out more on

​

Project |03

 

Project |04

 

Project | 01

Project |01 Master Thesis

​

My master thesis consists in developing a decentralized utility-based scheduling algorithm to grids. The core of the work consisted in using an utility algebra that will allow users to maximise their satisfaction (utility) by using a more flexible approach in the characterisation of job's requirements and the scheduling algorithm. The solution was implemented using GridSim, a widely used Java event-based simulator for grids. Besides the implementation of the algorithm, several extensions were added to the simulator in order to cope with the solution's requirements. 



The thesis was evaluated with a very good grade (19/20).

​

In the context of this work, a paper was produced and accepted in the SAC/ACM 2013 conference. The paper was submitted for blind review.



Tools used: Eclipse, Java, GridSim, SimJava, GnuPlot, Mendeley

Joao Vasques

bottom of page