Implemented Business Features - Fabryo/PokeManiac GitHub Wiki

The following features are implemented in this POC :

Splash Screen / App Launch

  • When the app is launched, the Splash Screen with the logo is displayed.
  • Then, the app navigates to the SignIn/SignUp screen. If the user is already logged in, the app should navigate directly to the NewsFeed — but no mock was implemented to bypass the screen. So at every fresh launch, this screen will be visible, sorry.
  • On the SignIn/SignUp screen, the SignUp button is not clickable. The SignIn button allows access to the NewsFeed.

https://github.com/user-attachments/assets/58bd7ed5-1a11-4514-a95d-49b27841f89d

NewsFeed

  • Displays the latest transactions from connected friends. It’s an infinite scroll feed containing sales/purchases made by friends.
  • Ads can be placed in the feed, interleaved between friend transactions.
  • Friends are mocked using characters from the SuperheroAPI. Transactions are hardcoded in the NewsFeedRepositoryImpl, including transactions from the user and mock users like Batman69, Batman70, and Superman.
  • Transactions, which should represent Pokémon card purchases/sales, currently use Pokémon images as placeholders instead of actual card photos, as I don't have any true Pokemon Card to be photographed.
  • An infinite loader is shown at the end of the list to simulate fetching more transactions via the API.
  • Transactions are not clickable yet, but future implementations should include navigation to transaction details, friend profiles, etc.
  • A Pull-to-Refresh is implemented to manually refresh the feed.
  • Several buttons are available in the top app bar to navigate to key features:
    • Friend search
    • Access to the friend list
    • Profile view
    • Quick access to post a new transaction

https://github.com/user-attachments/assets/10d60613-6fdf-47bd-9955-c26589d6afc7

Post new Transaction

  • A sequence of screens allows the user to take a photo of a card they’ve purchased or sold, enter the Pokémon’s name, and specify the card’s price. Many other transaction-related details (card grade, release year, rarity, etc.) could be added later.
  • Photo capture is handled in-app; however, access to the phone’s photo gallery has not been implemented.
  • Once the transaction is added, it is saved to the local database. It then becomes visible in both the NewsFeed and the My Profile screen.
  • Idea for later: an AI could be used to recognize the card, its value, and more.
-- -- --
posttransaction1 posttransaction2 posttransaction3

My Profile

  • Displays the current user’s profile. Ideally, it should include a profile picture, nickname, description, age, friend count, and number of votes on posts.
  • For now, the nickname is mocked, and the vote count remains at 0 due to lack of time to implement it.
  • The user’s transactions are displayed in a grid layout, sourced from the local database (in the absence of an API to post/fetch them).
  • A top bar button gives access to the “post new transaction” feature.
French English
MyProfile myprofileenglish

Friend Search

  • This screen allows users to search for new friends and includes error handling.
  • Friends are mocked using data from the SuperheroAPI.
  • When typing into the search field, there is a 500ms debounce delay to avoid flooding the API with requests.
  • If no results are found, a dedicated “no results” screen is shown.
  • If there are results, they are displayed as cards in a grid layout.
  • Each result has a button to subscribe/unsubscribe to/from that person.
  • When a user subscribes to a friend, the friend’s info is stored in the local database.
  • The person cards are not clickable yet but should be in future versions to access detailed user profiles.

https://github.com/user-attachments/assets/7215d01d-d771-4d9b-b6f8-e51e0e8ccd83

Followed Friends List

  • Displays the list of friends the user has subscribed to.
  • Friends are fetched from the local database.
  • Each friend has an unsubscribe button.
  • Clicking on a person opens their detailed profile screen.
  • A top bar button gives access to the friend search feature.

https://github.com/user-attachments/assets/6af29df5-78c1-4d1b-875f-1552d1e1e746

Friend Detail

  • Displays detailed information about a friend the user follows.
  • Shows: profile photo, name, description, and total vote count.
  • Includes a button to unsubscribe. On click, the friend is removed from the local database and the app navigates back to the previous screen.
  • The friend’s transactions are displayed in a grid layout. These are not clickable yet but should be in future versions to show transaction details.
  • The images shown are Pokémon placeholders, but they should eventually represent actual Pokémon card photos.
  • The transactions are mocked in the FriendsRequestImpl.
darkmode lightmode
friendsdetailfrench frienddetaillight

Note: transactions are only added for the following characters: Batman69, Batman70, Batman71, Superman195, Superman644, and Superman720. For all other characters, the detail screen will display an empty transaction list.