Skip to content

Proxima v0.1.3 (M1)

Compare
Choose a tag to compare
@github-actions github-actions released this 12 Apr 21:18
· 1853 commits to main since this release
3d9ca2f

Changelog

All notable changes to this project will be documented in this file.

[0.1.3] - 2024-04-12

🚀 Features

  • (setup) Cerate Flutter demo template + CI
  • (login) Add firebase config files
  • (login) Update the firebase config files
  • (login) User login implemented with firebase
  • (login) Persistent login with user profile viewmodel
  • (database) Add firestore dependency with dummy example
  • (profile) Display main components of user profile page
  • (profile) Widget consumes user data provider
  • (profile) Added navigation to user page
  • (login) Display all components of login screen
  • (login) Add logo jpeg in assets
  • (login) Adapt layout with containers
  • (login-screen) Place logo in expanded to avoid overflow
  • (login) Adapt test to new sign in button
  • (ui-theme) Get system brightness and set font to poppins
  • (createAccount) Add CreateAccountPage skeletton and navigation
  • (createAccount) Add CreateAccountPage content
  • Showing post title and body
  • Add route to new post screen
  • Make new post page layout
  • (new post) Test existence of title, body and post button
  • (new post) Add a new post button to home page for tests
  • (new post) More tests
  • (new post) Test that empty posts are refused
  • (new post) Do not commit empty posts
  • (new post) Add padding on bottom button
  • (overview) Add static bottom navigation bar on overview
  • (overview) Add static top bar on overview with filter and profile picture
  • (overview) Add static feed with posts
  • (overview-ui) Improved filter selection
  • (database) Add class to represent firestore user data
  • (database) Add user firestore repository
  • (database) Add tests for user repository
  • (database) Add post firestore representation
  • (database) Separate post data from database management related fields
  • (database) Add skeleton interface for the post repository
  • (database) Add dependencies for geo queries
  • (database) Create a service to get the location of the user
  • (database) Implement the post repository
  • (database) Add mockito dependency
  • (database) Add tests for GeoLocationService
  • (database) Add skeleton for post repository testing
  • (database) Add tests for post repository
  • (database) Add doesUserExists method to user repo
  • (database) Add userRepositoryProvider
  • (database) Add documentation
  • (profile) Added more tests to check if the elements of the screen are displayed
  • (geolocation) Add provider for geolocation service
  • (geolocation) Add location permissions
  • (new post vm) Can add post with description and title
  • (new post vm) Use controllers in form to obtain values
  • (mock) Add mocks for the repositories
  • (mock) Add helper class to create mock users
  • (new post vm) Test that the repository is written to
  • (navigation) Handle back button on create account page
  • (navigation) Seperate navigation for account creation and home page from login.
  • (navigation) Add navigation to new post page.
  • (navigation) Improve bottom bar navigation
  • (navigation) Add optional onPressed override on back button
  • (navigation) Add not implemented util widget instead of crash error
  • (navigation-ui) Add per-screen topbar label
  • (new post vm) Try to override the user provider
  • (new post vm) Merge the two tests and use fake sign in
  • (project) Add build script for APK
  • (profile) Simplifying the UI for the profile page by taking away ambiguous double scroll
  • (profile) Added tab navigation between posts and comments
  • (profile) Added tests for this new version of the profile page
  • (profile) UI is even more refined with for example the addition of shadows
  • (profile) Added mock material in the info cards.
  • (profile) Added more precise tests that check if all types if info cards are displayed
  • (profile) Pass card texts directly as parameters
  • (uidProvider) Add a uid provider
  • (new post vm) Use uidProvider
  • (new post vm) Add documentation
  • (overview) Add posts provider for nearby posts
  • (overview) Add documentation for post provider
  • (overview) Use the postOverviewProvider to display posts
  • (overview) Add a test to check the loading state
  • (overview) Add documentation to the provider
  • (overview) Add tests for PostOverview
  • (overview) Add unit tests for the postOverviewProvider
  • (overview) Make the overview refreshable
  • (overview) Add integration tests for the postOverviewProvider
  • (overview) Use a mock of the home viewmodel
  • (overview) Add a refresh button for when there are no posts to display
  • (overview) Add unit tests for the refresh
  • (overview) Center circular value in parent
  • (userRepository) Add a isUsernameTaken method and tests
  • (createAccount) Validate inputs before navigating to the home page
  • (createAccount) Validate inputs more restrictively
  • (createAccount) Create the account in the database when the button is clicked
  • (MockFirebaseAuth) Add a mocked signed in user provider override
  • (CreateAccountModel) Add withAccountCreated setter method
  • (README) Add wireframe and mockup in the README
  • (end-to-end-test) Flow from login to homepage
  • (end-to-end-test) Test navigation to profile page and in bottom bar
  • (end-to-end-test) Navigate to new post form and fill it
  • (integration test) Bottom bar navigation to new post

🐛 Bug Fixes

  • (login) Prevent sign in with unvalid credentials
  • (login) Logout using a listener for authentication change
  • (login) Add isUserLoginProvider
  • (login) Also sign out from Google
  • (login) Change to guard clause
  • (test) Fix signOut mock error (see atn832/google_sign_in_mocks#7)
  • (login) Use watch + inline mocks
  • (login) Prevent sign in with unvalid credentials
  • (login) Fix login bug
  • (profile-page) Remove old todo
  • (profile-page) Remove commented imports
  • (login-ui) Replace Expanded by Flexible
  • (login) Factorize tagline text
  • (profile) Long emails are now handled and the borders are padded
  • (createAccount) Remove unnecessary SafeArea
  • (createAccount) Resolve incorrectly resolved merge conflict
  • (profile) Adapted tests so that they run with the new main
  • (profile-page) Removed black borders and pink background
  • (profile-page) Reduce picture radius
  • (profile) Refractoring of the user profile screen
  • (profile-page) Add documentation
  • Optimise imports
  • Add todos and remove useless variables
  • Make body scroll when too big
  • Post button always visible
  • (new post) Removed unused view model
  • (new post) Make body always never overflow
  • (new post) Make body take up all the available space
  • (new post) Optimise imports
  • (new post) Resolved issues of the merge with main branch
  • (new post) Only use NewPostPage in tests
  • (new post) Use keys in tests
  • (new post) Validate logic is safer and more clear
  • (createAccountOverflow) Make the screen scrollable if too high
  • (createAccountOverflow) Add minimum space between widgets
  • (overview) Remove unused circular_value
  • (overview) Remove vote displaying two minus signs
  • (overview-ui) Remove SafeArea widget surrounding the scaffold.
  • (overview-ui) Use of AppBar widget in Scaffold instead of implementing PreferredSizeWidget to class HomeTopBar
  • (overview-ui) Assign test key to HomeTopBar widget
  • (overview) Readd circular_value.dart file
  • (overview-ui) Remove logout button from top bar
  • (overview) Rename navigation bar labels
  • (database) Check user document exists before parsing
  • (database) Check that uid is not empty in setUser
  • (database) Convert StateError to Exception
  • (database) Manage properly document parsing errors
  • (database) Add GeolocatorPlatform injection to GeoLocationService
  • (database) Refactor UserFirestore to separate data from firestore logic
  • (database) Make post representation immutable
  • (database) Change Timestamp.now to Timestamp.fromEpoch in geoloc test
  • (database) Add displayName to the user representation
  • (database) Add strong typing for post and user id
  • (database) Override == and hash methods of post and user because of immutability
  • (database) Use strong type ids in repos
  • (database) Use late initialization for user repo testing
  • (database) Fix formatting issue
  • (firestore-repositores) Typo in comment
  • (database) Use FormatException for parsing errors
  • (database) Use LocationAccuracy.best instead of high for better accuracy
  • (database) Update comment to handle permission location denied forever
  • (database) Enforce strong typing for ids
  • (database) Document geo location service
  • (database) Apply naming convention
  • (database) Use single stream subscription to get near post
  • (database) Correct a typo
  • (database) Check that post is in db before checking delete in test
  • (database) Add tests for user data firestore
  • (database) Use GeoPoint instead of GeoFirePoint in method arguments
  • (database) Correct test name
  • (database) Use same testing user in all tests
  • (test) Use the right imports in new_post_test
  • (navigation) Add missing trailing comma in NavigationbarRoutes
  • (navigation, overview-ui) Fix CircleAvatar's InkWell top bar.
  • (profile) Replace back arrow with common LeadingBackButton widget.
  • (leading_back_button) Fix leading back button splash ink size.
  • (mock) Make methods of MockPostFirestore static
  • (mock) Make methods of MockUserFirestore static
  • (new-post-view-model) Adding a post by hand now works
  • (new post vm) Posting now pops back immediately
  • (profile) Cleaned code that is not used anymore
  • (profile) Remplaced old buggy card display with "ListTile" widgets
  • (profile) Removed wrong padding
  • (profile) Added missing import in user profile test file
  • (profile) The email check is now done before we pass it to the widget
  • (profile) Added missing trailing comma
  • (login-navigation) Use new provider (uidProvider) for userId
  • (home) Remove duplicate navigateToLoginPageOnLogout
  • (new post vm) Now using and mocking uidprovider
  • (new post vm) Update the mock to use nullable parameters
  • (new post vm) Tests now work
  • (new post vm) Increase delay to 500ms and organise imports
  • (new post vm) Make view model auto dispose
  • (new post vm) Center the loading circle
  • (new post vm) Pop directly after adding the post
  • (firestore) Disable firestore cache globally
  • (overview) Adapt the overrides for the postOverviewProvider
  • (overview) Override the hash and ==
  • (overview) Adapt the overrides for the postOverviewProvider
  • (overview) Use static methods of mock generating classes
  • (overview) Check that the refresh button is displayed when there are no post
  • (overview) Add spacing between text and refresh button
  • (overview) Add a refresh method to the viewmodel
  • (overview) Add onRefresh to home viewmodel mock + make constructor parameters optional
  • (mock_home_view_model) Fix typo in comment
  • (overview) Use arrow function
  • (overview) Check that the exception has the right message
  • (overview) Detail the generation of posts in and out of range
  • (overview) Remove mocking duplication
  • (overview) Check the message of the exception being thrown
  • (overview) Show the displayName on the post + rename fields for consistency with PostData
  • (overview) Use AsyncValue.guard() in refresh
  • (overview) Resolve merge conflicts
  • (circular-value) Remove Expanded widget that was wrapping the CircularProgressIndicator
  • (circular-value) Center the CircularProgressIndicator without the CircularValue
  • (circular-value) Center error message
  • (loginTest) Use correctly validated input and mock Firestore
  • (createAccount) Improve robustness facing user disconnection
  • (createAccount) Wait for the account to be created before navigating
  • (loginTest) Use valid username and pseudo when visiting the account creation page
  • (createAccountTest) Make the mocked app start at the right route
  • (createAccountTest) Use a mocked empty home view model override
  • (release action 403) Add content permissions
  • "Challenges" instead of "Your Challenges" to avoid overflow
  • (integration test) Mock the geopos service and post repo
  • (integration test) Remove home view model override
  • (integration test) Use refresh button instead of swipe
  • (integration test) Restore full tests
  • (profile_page_test) Remove unused import

🚜 Refactor

  • (login) Use provider to access static instances
  • (login) Clean up + CI passing before PR
  • (login) Improve login page maintainability
  • (login) Factor out code to navigate back to homepage on logout
  • (createAccountTest) Remove unncessary code for test
  • (new post) Separate the elements into intermediate values.
  • (new post) Factorise padding
  • (new post) Extract bottom row
  • (new post) Put new post form in its own file
  • (overview-ui) Refactoring home page to pages folder
  • (overview) Clean documentation and refactor public interface
  • (overview) Improve internal widgets readability
  • (overview-ui) Rename timeline_filter_dropdown class to timeline_filter_chips
  • (overview) Refactor feed filters to sort options
  • (overview) Rename timeline to feed
  • (database) Move MockGeoLocationService into its proper file
  • (database) Extract user model + testing
  • (database) User repository service + test
  • (database) Split post data
  • (database) Adapt tests to the refactoring
  • (database) Split tests files according to the refactoring
  • (database) Move repository tests to service directory
  • (mock) Rename MockFirestorePost to MockPostFirestore for consistency
  • (mock) Relocate MockPostFirestore for consistency
  • (navigation) Create leading back button widget.
  • (navigation) Move feed to application content
  • (navigation) Move navigation related to nav directory
  • (home_feed) Rename home_feed to post_feed
  • (home_content) Rename content folder to home_content
  • (new post vm) Moved validation logic to the vm
  • (new post vm) Add const
  • (overview) Rename Post to PostOverview
  • (overview) Rename postProvider to postOverviewProvider
  • (overview) Remove the old post provider
  • (overview) Extract the displayed post list
  • (overview) Rename test group for clarity
  • (overview) Apply the renaming of MockPostFirestore
  • (overview) Use an AsyncNotifier to be consistent with other viewmodels
  • (overview) Improve code readability and navigate to new post
  • (loginTest) Remove code duplication
  • (createAccount) Renamed CreateAccountError to CreateAccountMOdel
  • (CreateAccount) Renamed CreateAccountModel::valid to CreateAccountModel::accountCreated
  • (CreateAccountModel) Make constructor attributes optional
  • (CreateAccountModel) Add getter to know when there is no error
  • (CreateAccountViewModel) Remove the ability for the model to be nullable
  • (userRepository) Improve isUsernameTaken query efficiency
  • (end-to-end-test) Create one method per page tested

📚 Documentation

  • (scrollableIfTooHigh) Add documentation
  • (scrollableIfTooHigh) Improve documentation clarity
  • (overview) Comment widgets, enums and fix typo in comment_widget.dart
  • (overview) Add a note on the upvote and downvote widgets
  • (overview) Add note comment about two onTap actions in post card.
  • (readme) First MS1 README
  • (navigation-bar) Remove done TODO
  • (static_home_test) Fix typo comment
  • (createAccoutViewModel) Improve code documentation

🧪 Testing

  • (login) Add mock dependencies + test utils
  • (login) Add login logout test + refactor mock tests
  • (database) Add a mock of Firestore with fake data
  • (createAccount) Add the createAccountPage in the middle of the login test flow
  • (createAccount) Add test that text fields are visible
  • (overview) Add test keys and view model to home page
  • (overview) Add static tests of overview widgets
  • (overview) Readd logout button for testing
  • (overview-ui) Reorder import in login_test.dart
  • (overview) Readd test key to profile picture button.
  • (navigation-test) Readd logout tests along with logout button in top bar.
  • (navigation) Add robustness to navigation test error
  • (navigation) Remove duplicate navigation test
  • (navigation) Remove test initialization duplication
  • (navigation) Rename debug key variable name
  • (navigation) Improve test naming.
  • (createAccount) Verify inputs are validated correctly
  • (profile_page_test) Fix key profile naming

⚙️ Miscellaneous Tasks

  • (login) Add tests for logo and slogan
  • (analysis) Dcm analysis
  • (overview) Remove print invocation
  • (overview-test) Remove unused import
  • (tests) App testing coverage badge
  • (dcm) Clean action
  • (apk) Build pipeline for APK to action artifact
  • Application release pipeline on workflow_dispatch

Format

  • Format new post page and view model
  • (new post vm) Remove imports
  • (new post vm) Optimise imports
  • (createAccountPage) Fix bad merge conflict resolution code formatting
  • (loginTest) Fix bad code style after merge conflict resolution
  • (loginTest) Remove unncessary imports after merge conflict resolution

Merge

  • (new post) Merge main into new post
  • (new post) Merge main into new post