Skip to content

Commit 7f4c88f

Browse files
committed
Update README
1 parent ef64302 commit 7f4c88f

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

README.md

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ An idea to save time and avoid queues outside supermarkets and other shops in ge
3030
This is a project made for my graduation exam.
3131
In the last year we usually study Java, and that's what determined the language to use for the app, instead of Kotlin.
3232

33-
It was created during Coronavirus lockdown in Italy. The idea came from [a post on Facebook](https://m.facebook.com/story.php?story_fbid=2814783488643375&id=310949775693438) written in March 2020 by the Italian minister of Agricultural, Food and Forestry Policies. It's also inspired by the system most post offices already use to save time.
33+
It was created during the Coronavirus lockdown in Italy. The idea came from [a post on Facebook](https://m.facebook.com/story.php?story_fbid=2814783488643375&id=310949775693438) written in March 2020 by the Italian Minister of Agricultural, Food and Forestry Policies. It's also inspired by the system most post offices already use to save time.
3434

3535
<a name="features"></a>
3636
## Features
@@ -52,16 +52,22 @@ A user will receive a push notification (via Firebase Cloud Messaging) when it's
5252

5353
### Shop owner
5454

55-
A shop owner must reach out an administrator to receive an appropriate account and to register his business in the platform.
55+
A shop owner must reach out to an administrator to receive an appropriate account and to register his business on the platform.
5656

5757
After that, he can manage the queue of his shop and call the next customer.
5858

5959
### Administrator
6060

6161
An administrator can manage all accounts (both users and shop owners) and all shops.
6262

63-
For every user, the access token returned from the server during the login phase,
64-
it's stored on the device using [EncryptedSharedPreferences](https://github.com/simonesestito/shops-queue-android/blob/master/app/src/main/java/com/simonesestito/shopsqueue/di/module/SharedPreferencesModule.java).
63+
<a name="security"></a>
64+
## Security
65+
66+
A user must verify its e-mail address after signing up.
67+
68+
When the user logs in, its password is NEVER saved on the user's device. Instead, an access token is securely stored in SharedPreferences. Other installed apps aren't allowed to access SharedPreferences, apart from rooted devices. Whenever it's possible, the access token is encrypted using [Jetpack Security library](https://developer.android.com/topic/security/data).
69+
70+
If the access token is sniffed, a user will be able to immediately revoke it from the "Active sessions" menu. The password will never be discovered by an attacker.
6571

6672
<a name="ui"></a>
6773
## UI Design
@@ -94,15 +100,15 @@ Then, we have the *Model* layer, where all the data comes from. In this specific
94100

95101
This project follows the **Single Activity Architecture** and the **Jetpack Navigation Library**.
96102

97-
It has a single Activity, which is the entrypoint of the app. Every other piece of the user's flow is implemented as a Fragment.
98-
Every part of the app is divided in [different sub-graphs](https://github.com/simonesestito/shops-queue-android/tree/master/app/src/main/res/navigation).
103+
It has a single Activity, which is the entry point of the app. Every other piece of the user's flow is implemented as a Fragment.
104+
Every part of the app is divided into [different sub-graphs](https://github.com/simonesestito/shops-queue-android/tree/master/app/src/main/res/navigation).
99105

100106
The app uses **Deep Links** to go immediately to the login fragment. It's used as a redirect URI after the email address is validated.
101107

102108
<a name="di"></a>
103109
## Dependency Injection
104110

105-
Dependency Injection is a design pattern used in Object Oriented Programming. It allows the instatiation of a class which depends on another, and so on.
111+
Dependency Injection is a design pattern used in Object-Oriented Programming. It allows the instantiation of a class which depends on another, and so on.
106112

107113
This project uses **Google Dagger**.
108114

@@ -116,7 +122,7 @@ It's a release process that automatically deploys new versions of the software.
116122
This project uses **GitHub Actions**.
117123

118124
Every time a new commit is pushed to this repository, a workflow is triggered.
119-
A new version of the app is compiled on GitHub servers, shrinked using Android R8, signed with the release certificate and, finally, pushed to the app's storage bucket to let everyone download it.
125+
A new version of the app is compiled on GitHub servers, shrank using Android R8, signed with the release certificate and, finally, pushed to the app's storage bucket to let everyone download it.
120126

121127
The file which describes the workflow and the build process is [android.yaml](https://github.com/simonesestito/shops-queue-android/blob/master/.github/workflows/android.yml)
122128

0 commit comments

Comments
 (0)