Implement a simple Twitter app using Firebase Auth and Cloud Firestore.
On first launch, the app lets users sign in with Firebase using email and password. (Note: avoid Google SSO to ease local testing)
After sign in, the app shows a page where the user can:
- Type in a tweet with 280 characters limit
- Save this along with the current time into Firestore
- View a list of all tweets by all users, sorted by most recent date
- The app should update in realtime when the data changes on Firestore.
Bonus features:
- Edit a tweet written by the author
- Delete tweets written by the author
- Sign-out functionality
Notes:
- Flutter is preferred, it's what we use at Glints
- When building the UI and navigating between screens, optimise for usability
- Would be good to add some key tests, and the final code should be testable.
If some requirements appear to be vague or lack sufficient details, make assumptions based on your own judgment.
The assignment will be evaluated according to the following criteria:
- The app works and satisfies the requirements outlined above
- General project structure and organization of code
- Separation of concerns between UI, authentication, database code
- Simplicity - we don't require an over-engineered solution
- Naming conventions for variables, functions and classes
The expected duration of this assignment is 1 - 2 days.
Share the github repo with seahyc. On the README, attach a screenflow of the core user flows, as well as instructions to run the app on local machines using emulators.