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.
-- | -- | -- |
---|---|---|
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 |
---|---|
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 |
---|---|
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.