diff --git a/README.md b/README.md index e2d67555..da3c84a4 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ Daily meeting summaries are uploaded to `Issues` tab Roee's miluim service documents are uploaded to `Issues` tab if needed, Tzvika was informed about it. +## Dear TA please check main-Ex5 for the final version of Ex5 ## Dear TA please check main-Ex4 for the final version of Ex4 --- @@ -12,6 +13,7 @@ Roee's miluim service documents are uploaded to `Issues` tab if needed, Tzvika w - [Testing bloom filter server and python client](#to-test-the-python-client-and-bloom-filter-server) - [Running as web application project](#running-the-entire-web-app) - [env variables](#env-variables) + - [Running the android app](#running-the-android-app) - [Screenshots](#screenshots) - [Useful links](#useful-links) - [CPP server README](https://github.com/YuvalAnteby/Gmail-AdvancedSystemProgramming/tree/main-Exe/server_cpp) @@ -39,10 +41,10 @@ This will build and run only the test related containers (CPP server, gtest, pyt ### Running the entire web app This will build and run only the web application related containers (React, Node.js, CPP server) ```bash - docker-compose --profile web_app up --build + docker compose --profile web_app up -d --build web_server mongo ``` -### env variables +#### env variables In Node.js and React root folders you can find .env files with default values to help you check the project.
In a real world application these wouldn't be uploaded, we did it for easier set up for the checkers :) @@ -57,21 +59,37 @@ In a real world application these wouldn't be uploaded, we did it for easier set control+c ``` +### Running the android app +0. ensure the backend is running using docker using the previous instructions +1. Download and install the official android studio software +2. Set up an emulator device using an API version of 26 or greater (most modern phones will suffice) +3. You can install the project's app using 2 versions: + - Easy way: + 1. get from the root folder the given APK file + 2. ensure the emulator's device is up and running + 3. drag the file to the emulator's window, it will be installed in it + - The Custom way: + 1. Open android studio when targeting the folder `android_app` instead of the root folder + 2. Wait for android studio to finish the intial gradle build of the project + 3. click on the green run button using the built in tools and set up to your desire + +- in case you need to change the backend's API URL you can do so in `gradle.properties` located in the sub root folder `android_app` --- ### Screenshots
-Click to expand Ex4 screenshots +Click to expand Ex5 screenshots -light_login -dark_inbox -light_compose -dark_reading -dark_signup + + + +inbox_dark +inbox_light +reading_dark
-For more screenshots [click here](https://github.com/YuvalAnteby/Gmail-AdvancedSystemProgramming/tree/main-Ex4/screenshots/ex4) +For more screenshots [click here](https://github.com/YuvalAnteby/Gmail-AdvancedSystemProgramming/tree/main-Ex5/screenshots/ex5) --- diff --git a/android_app/app/src/main/java/com/asp/android_app/utils/InputValidation.java b/android_app/app/src/main/java/com/asp/android_app/utils/InputValidation.java index ecf7989c..abc00b7c 100644 --- a/android_app/app/src/main/java/com/asp/android_app/utils/InputValidation.java +++ b/android_app/app/src/main/java/com/asp/android_app/utils/InputValidation.java @@ -13,7 +13,7 @@ public static boolean isFullNameValid(String name) { if (name == null || name.trim().isEmpty()) return false; // Regex: only letters, hyphens, and apostrophes (e.g., O'Connor, Anne-Marie) - String namePartRegex = "^[A-Za-zÀ-ÿ'-]+$"; + String namePartRegex = "^[A-Za-zÀ-ÿ]+\\s[A-Za-zÀ-ÿ]+$"; return name.matches(namePartRegex); } diff --git a/gmail.apk b/gmail.apk new file mode 100644 index 00000000..aaa90ddf Binary files /dev/null and b/gmail.apk differ diff --git a/screenshots/ex5/android_welcome_dark.png b/screenshots/ex5/android_welcome_dark.png new file mode 100644 index 00000000..2be3cb4b Binary files /dev/null and b/screenshots/ex5/android_welcome_dark.png differ diff --git a/screenshots/ex5/compose_dark.png b/screenshots/ex5/compose_dark.png new file mode 100644 index 00000000..f502182a Binary files /dev/null and b/screenshots/ex5/compose_dark.png differ diff --git a/screenshots/ex5/empty_inbox_light.jpeg b/screenshots/ex5/empty_inbox_light.jpeg new file mode 100644 index 00000000..679e0290 Binary files /dev/null and b/screenshots/ex5/empty_inbox_light.jpeg differ diff --git a/screenshots/ex5/empty_sent_light.jpeg b/screenshots/ex5/empty_sent_light.jpeg new file mode 100644 index 00000000..ec1c7ab0 Binary files /dev/null and b/screenshots/ex5/empty_sent_light.jpeg differ diff --git a/screenshots/ex5/empty_spam_dark.jpeg b/screenshots/ex5/empty_spam_dark.jpeg new file mode 100644 index 00000000..2f332600 Binary files /dev/null and b/screenshots/ex5/empty_spam_dark.jpeg differ diff --git a/screenshots/ex5/inbox_dark.png b/screenshots/ex5/inbox_dark.png new file mode 100644 index 00000000..86992cc8 Binary files /dev/null and b/screenshots/ex5/inbox_dark.png differ diff --git a/screenshots/ex5/inbox_light.png b/screenshots/ex5/inbox_light.png new file mode 100644 index 00000000..8922c29c Binary files /dev/null and b/screenshots/ex5/inbox_light.png differ diff --git a/screenshots/ex5/reading_dark.png b/screenshots/ex5/reading_dark.png new file mode 100644 index 00000000..37b8a4a2 Binary files /dev/null and b/screenshots/ex5/reading_dark.png differ diff --git a/screenshots/ex5/reading_light.png b/screenshots/ex5/reading_light.png new file mode 100644 index 00000000..96118dcf Binary files /dev/null and b/screenshots/ex5/reading_light.png differ