Enjoy Java 2020

David Buzatu - Schedly (1st Place)

Schedly is a mobile application made completely in Java, using NodeJS only for communication with the server, its results being processed in the Java environment. The app offers a better way of making appointments for any kind of service( from haircuts to dentist appointments) by reading its users SMS messages and using MachineLearning in order to understand the needs of the clients. The main advantage is that the clients do not have to install anything and can just send their SMS messages as usual for an appointment, the application will do everything on the service provider's side. The app needs to know the user's working hours and an approximation of how much time takes an appointment.

Also, for storing all the information it needs, I've used Firebase's Cloud Firestore, which is a database working with collections on a higher level, having documents as their children, which can afterwards have collections/ documents inside of them. From my application, I can send information through their API using a class Map<String, Object> in order to specify the information details and when I try to get something, their API returns a class Task, which can be of generic Void or DocumentSnapshot, depending on what table and operation I am trying to accomplish.

When a message is received on the users phone( which has a service monitoring his/ her SMS messages), the app will first check if the message has all the essential things for it to be considered an appointment message. This means the message has a key-word: appointment, schedule, programare; or a delete-word: cancel, delete, sterge; an hour, date or both. If this conditions are met, the message is send through NodeJS to FirebaseFunctions, from where a connection is made with the API of DialogFlow( a service which offers MachineLearning hosting for various language related needs). DialogFlow will process the message and send back the parameters it found. Afterwards, the app will know it its only an appointment for a given hour( for which it will try to search the nearest 3 days which are free around that time +- 1 hour and half), for a given date(for which it will return all the appointment hours free on that date) or for a given time and date( for which it will try to make the schedule at that hour or closely to it).

However, the user can still make manual appointments through the activity in which all of his appointments are visible. The client will automatically receive a message when the appointment was created and will be announced if it will be canceled at some time.

In case of spamming on messages, the user can block the number in the settings of the app, marking the number as to not be considered anymore.

A user can login using his/ her email, facebook account or google account.

Alexandra Ciorbă - Timetable

Timetable is an application in which a user can create and account and manage his school schedule by adding Courses (i.e. Lecture, Laboratory, Seminar).

Christine Lazăr - Personal Library Manager

This application provides a graphical interface and manages the following operations:
  • adding a book, an author, saving them in a JSON file.
  • printing all the contents of the JSON file.
  • searching for a book, an author.
  • modifying their names, along with the details of a book: if you have read the book, if you liked the book, how many times have you read the book.

Miriam Mironiuc - Monitoring activities

This is an app that keeps track of all the children which are coming to a weekly club.

It holds a record of every team and child, adds and gives points to the team and to each child. In the app you can log in as a leader and add a new child, create four or up to four teams in a day, give points according to the games they play and whether they have learned the lesson or not. As a leader you can assign a team or another leader to any child.

Deniza Mîrza - Finder

The application locates more clients on a NxN map, by means of triangulation. The first map is used to add objects (antennas or clients), while the second displays the clients simulated by the triangulation algorithm that starts only when we have at least 3 antennas. By selecting any client, we can move it in any direction through the arrow buttons.

The communication with the user is done through a text field in the bottom right of the frame and will notify if illegal actions such as overlaying two objects, moving a client out of the map or trying to move it without being selected first are done.

Thank you for participating!