Apipilikas / TowardsGreen

Android application that helps people organize events with main goal the volunteering work.

Home Page:https://apipilikas.github.io/projects/TowardsGreen.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

towards-green main logo

TowardsGreen

Evangelos Pipilikas

Clarifications

This first Version (Version 1) of this project has been implemented by me, John Mavridis and Antonis Christoulakis. After that, all the upcoming versions have been released by me.

Content

  1. TowardsGreen folder: server side (the main server which should be running for the whole duration)
  2. ΤοwardsGreenApp folder: client side (the mobile app)

Main reason of this project

This project has been implemented for the course Application Development of Computer Systems at AUEB for the year 2021-2022. We were asked to foster a pioneering idea for an upcoming app. In a world that constanly changes and demands people's attention more than ever before, there is nothing else but environment that could draw our interest.

What is Towards Green?

Towards Green (TG) is a new app that is intented to help municipalities come closer to the citizens and vice versa. Municipalities often delay to do even the simple tasks like cleaning a park. Other than that, they seem to struggle to keep track of open issues in the community. Towards Green is here to deal with all this problems, having citizen as the main focus. Should one want to use the app, one will have to create an Account. After that, one can through a simply and cozy interface share issues that have come to one's attention, take part in volunteering events and many more that are described detaily at the "Main App features" section.

Main App terms

  1. User account: the account for the user tha is needed in order to have access.
  2. Supervisor: one of the two roles. This role gives additional access to features like create an event and QR scanning.
  3. Profile: it contains user's information.
  4. Post: it is uploaded by users and contains useful infromation for the issue that concerns them.
  5. Event: it is created only by supervisors and gives the opportunity to users to take part in it. Furthermore, it contains useful information for the place and time that is going to take place.
  6. Badge: it is created by supervisor and can be achieved by one by attending an event. Badges come with points that are added at the user's account. It is actually a "treat" to keep up attending events.
  7. QR scanning: it is operated only by supervisors and its use is mandatory for the user's confirmation of participation.
  8. Leaderboard: it shows the rank, the username and the points of each user.

For more details about the terms, an additional feature file is going to be uploaded soon.

Main App features

The current features of the app (serving by Version 1) are:

  • Create a User account and connect to it
  • Create, Edit and Delete a Post
  • Create, Edit and Delete an Event
  • Fully functioning points-allocation system after the event has closed
  • Fully functioning QR code-scanning system to confirm user's participation
  • Fully functioning badge-allocation system
  • Leaderboard page

For more details about the features, an additional feature file is going to be uploaded soon.

Simple scenario

An example is always the best way to understand something. So, let's say that we are in our municipality and we have observed that the main Park or beach is full of litters. What we can do is open the TowardsGreen App and create a new post with a description like "It is such a pitty that our local beach is full of these garbage. I think we can do something for that". You can also take a picture and attach it in your post. After that, a supervisor is hopefully going to see your post (I said hopefully because all depends on how many positive reactions the post is going to take) and turn it to an event. The supervisor has the option to award the user with the post for posting such an issue (the award is some points). Also, supervisor has to fill all the required information like the place and time of meeting, the badge (optional) that is going to receive someone who has participated in this action and more. Now, an event called "Cleaning the local beach" has created (badge called "beach cleaning 2022" has been attached to this event) and the option "Take part" is open to anyone who is willing to participate. Let's say that 4 people have participated and event has status "In progress". In order to get points and the badge, supervisor has to confirm one's presence by scanning one's QR code. When the event status changes to "Closed", all the confirmed-participated users are going to take the badge and the points. Leaderboard is going to be updated as well.

Further implementation

After the release of Version 1 (which is the one that has been submitted for the purpose of the course), several bugs have been found. Other than that, code needs simplification to obtain code maintainability and some GUI needs change in terms of color and organization.

How to run the project?

  • To run the server, ideal environment is Eclipse. Open the TowardsGreen project there (located in the folder with the same name) by doing Import Gradle Project. In order to successfully connect to MongoDB, it needs a modification to its environment variables. The main one we want to run is in the Server.java file. Instead of pressing Run, press Run Configurations. Make sure that in the left column Server in the Java Application is selected and go to the Arguments page. Then, add to the VM arguments the command -Djdk.tls.client.protocols=TLSv1.2. by doing the latter we ensure that the connection with the MongoDB is not blocked.
  • To run the client, open the TowardsGreenApp project in Android Studio by doing Import Project.
Last but not least, make sure that server is able to connect properly with the MongoDB and every time you run the client side, server is up!

© 2022 Towards Green. All rights reserved

About

Android application that helps people organize events with main goal the volunteering work.

https://apipilikas.github.io/projects/TowardsGreen.html


Languages

Language:Java 100.0%