Skip to content

Extra Features

Abbas Yadollahi edited this page Apr 16, 2019 · 6 revisions

Project-wide Features

  • User Login

    When the user first opens the TreePLE mobile application, the first screens he encounters is the login screen. He can either sign in if he already has an account, or he can register for one. Additionally, he can change his password. For the Web frontend, the user must click on the TreePLE logo to show the login and signup options.


  • Resident & Scientist Registration

    The first screenshot shows the resident registration menu. The user must create a username, a password, and enter his postal code.

    The second screenshot shows the scientist registration menu. The scientist must create a username, a password, enter his postal code, and most importantly enter the access key only known to scientists.


  • Permission System

    The TreePLE application makes sure that, depending on your role (resident or scientist), different features are enabled, in order to restrict critical access.

    A resident can only plant on his property, as the backend service looks at the postal code the user submitted during account creation. As a resident, you can only cut down trees that belong to you, and cannot alter other trees' information after they have been planted.

    A scientist can update the information of any tree that is available in the TreePLE system. He can also plant at any location, as well as add new species and municipalities.


  • User Password Reset

    A user that has an account in the TreePLE system can change his password if he wishes. This extra features enables the user to feel in a more secure environment where identity theft is minimized.


Implementation Specific Features

Backend

  • Database

    PostgreSQL database for persistence layer.

  • Password Hashing

    Hashing of stored user passwords using BCrypt.

  • Geocoding

    Google Maps API integration to turn user postal codes into coordinates.

Android Frontend

  • Map Integration

    Google Maps API integration allows the app to render trees on a map according to their stored coordinates, where users can add new trees by long-pressing on the map.

  • App Update

    APK is signed for release and deployed to tomcat by Jenkins, app can then query server and download to user's device for manual install. The user needs to simply click on the loading wheel, and the APK is downloaded on his device in the downloads folder.

  • Password Hashing

    Hashing of passwords using SHA-512 before sending them to backend (due to inability to use HTTPS/SSL).

  • Create Species

    Allows scientists to create new tree species. This feature only available for scientists to help populate the database with confirmed species. When planting a tree, the user chooses from a list of declared species stored in the database to prevent errors, duplicates, or lack of knowledge about tree species.

Web Frontend

  • Frameworks

    ReactJs was used instead of the proposed VueJs framework. For the user interface, and Semantic UI took care of the styling.

  • Map Integration

    Trees are rendered on a map using Google Maps API according to their stored coordinates, also allowing users to add new trees by clicking on the map.

  • Password Hashing

    Hashing of passwords using SHA-512 before sending them to backend (due to inability to use HTTPS/SSL).

  • Hungarian Language Integration

    Users can decide between English and Hungarian calendars when filling forms.

  • HTTPS/SSL Integration (need to install certificate locally)

    Created security certificates to allow the Web frontend to be served over HTTPS when running locally.

HOME

THE PROJECT

GETTING STARTED

THE TEAM

PROJECT MANAGEMENT

Clone this wiki locally