To download the app: apk here!
stitcha_presentation.mp4
This repository contains an application template for a voting system, the exmaple we have is that of voting app on whether a certain station is working or not, if you open the app for the first time you will be asked to give the required permission if declined two times the app will close, after giving the permissions you wil be automatically redirected to a register/login screen, we have two options enabled by default: google login and facebook login. After a successful login you wil be automatically redirected to the main screen of the app containing a map, the map will autozoom on the city you are in currently (the location between you and all the cities will be calculated and the nearest city is the city to be loaded). The pins of each metro station will autoload if you click on a pin a Toast message will show up telling you how many votes have been made in a specified duration, votes are deleted after 24h. You have two options to vote from working
and not working
if the user votes a Toast will show up and the info is automatically updated on the database and therefore for all connected users.
If the user clicks on the app's logo
a live feed of all the votes in the last 24h is shown (this vote could be for anything, not necessarily for telling if the metro is working or not). The feed is composed of a recyclerview with autoupdating cards each card is colored with the same color as the voting buttons (positive green
and negative red
). The cards contain information about the map pin voted on and information on the user who voted and the time of vote.
- The construction of a functional
realtime database
voting metroandroid application
- The use of
firebase firestore
andfirebase realtime database
in order to keep track
of votes of each city and each metro station in realtime - login functionality using
facebook
,google
andemail
with the help offirebase
- Followed basic UI/UX principles in order to make a simple interface...
- Using
RecyclerView
andCardView
to show the list of items - Implemented a
loading screen
(splash screen), and alogin screen
. - The management of
app permissions
(fine location, coarse location,...) - Using
backgroud services
in order to track location while app is in the background - Used Google maps API to show and edit a
map view
-
Autozoom
,load pins
,update info
anddefine geofences
on a google maps view - A
reactive UI
built from scratch with the help offirestore
andfirebase realtime db
-
Firebase analytics
to keep track of user engagement in realtime
- Android Studio - The official integrated development environment (IDE) for Android application development.
- Clone the repository with:
fayssal@mypc:~$ git clone https://github.com/fayssalElAnsari/stitchaApp.git
- Import the project into
Android Studio
- make your own modifications to whatever you want 😅
- Put your
google-services.json
file in the project - PS: If the database doesn't exist it should be created automatically
- Export your
android
app
- Android Studio - The official integrated development environment (IDE) for Android application development.
- Java - A high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible.
- Firebase - A Backend-as-a-Service (Baas). It provides developers with a variety of tools and services to help them develop quality apps, grow their user base, and earn profit
- AdMob - A free platform that gives you a way to earn money by displaying targeted ads alongside your app content
- XML - A markup language and file format for storing, transmitting, and reconstructing arbitrary data
- Fayssal EL ANSARI
- Attribution-NonCommercial-ShareAlike 4.0 International