Proxima v0.4.1
Changelog
All notable changes to this project will be documented in this file.
[0.4.1] - 2024-05-24
🚀 Features
- (milestone-3-github-project) Add milestone milestone 3 project board
- (milestone-3-github-project) Updated project
- (github-project) Use new way of marking user stories
- (logo_progress_indicator) Add custom progress indicator
- (logo_progress_indicator) Add the new progress indicator to the app
- (profile) Sort posts from lattest to oldest
- (profile) Add publication time field to user post details
- (profile) Sort the user posts on the profile page
- (profile) Update hash and == test of user posts
- (profile) Make publication time random
- (map-selection) Add view-model for option selection
- (map-selection) Connect view-model to ui
- (map-selection) Add 'my posts' getting logic
- (map) Add provider with mock firestore and position
- (post-generator) Add createUserPosts function
- (map-selection) Add 'challenges' getting logic
- (mock-homepage) Add additionalOverrides parameter
- (map-options) Add 'refresh' method to pin view model
- (ranking) Add navigation to empty ranking page
- (ranking_element_details) Add the data class & tests
- (ranking_details) Add the data class & tests
- (ranking_element_details) Add user username to ranking element details
- (ranking_details) Add checking & documentation of null userRank
- (ranking) Add ranking UI
- (ranking_card) Add static const text ---
- (ranking_card) Use => return syntax for onTapUserPopUp
- (ranking_widget) Bring mock data creation closer for easier view model integration
- (ranking_card) Add dark mode colors
- (ranking_card) Improve readability with ? and ?? operators on userRankText
- (ranking_card) Improve readability of cardColor
- (comment) Add publication time field
- (profile) Sort user comments from latest to oldest
- (profile) Add test for single comment case
- (ranking-vm) Add the
getTopUsers
method to theUserRepositoryService
- (ranking-vm) Tack the new viewmodel for ranking
- (ranking-vm) Add the full code for users ranking viewmodel
- (ranking-vm) Add the refresh feature to rankings
- (ranking-vm) Convert ranking widget to get a ranking details arg
- (ranking-vm) Await both futures at the same time
- (challenge-refresh-page) Show refresh page
🐛 Bug Fixes
- (loading_icon_button) Revert logo progress indicator
- (logo_progress_indicator) Use private static const for asset path
- (map-options) Remove active challenge pins
- (map-options) Refresh pins on post deletion
- (map-options) Refresh pins on post creation
- (map-options) Refresh pins on challenge completion
- (navigation_bar_routes) Add const to RankingWidget creation
- (ranking_details_test) Use generated user in test
- (ranking-ui) Move static const at the top of the class
- (ranking_card) Put user popup function within the build method
- (ranking_card) Put card widget content in final variable
- (ranking_card) Use theme font size & reduce SizedBox width for rank text
- (map-options-test) Remove unnecessary tester.tap
- (fake-post) CreateUserPost creates a post with the correct geohash
- (create-account) Remove unused variable
- (profile) Use sorted instead of ..sort for consistency with user post viewmodel
- (comment) Add default value for publication time
- (test) Change MockChallengeViewModel to AutoDisposeAsyncNotifier
- (challenge-tests) Add await before setPostsFirestore
- (imports) Fix import after moved package
- (test) Import ranking correctly
- (profile) Add const and remove unused var
- (new_post_form) Revert postbutton to Expanded in row
- (more-e2e) Use corrected navigation enum class name
🚜 Refactor
- (feed-sort) Move view model to 'option_selection' package
- (feed-sort) Abstract view-model logic to an abstract class
- (map-details) Remove selectOption unusued attribute
- (map-pin) Move nearby posts getting logic to a function
- (map-pin) Abstract post to map pin details conversion to a function
- (map-options) Use a map for keys
- (map-options-test) Abstract test beginning in function
- (map-options-test) Abstract pins-posts comparison in function
- (map-options-test) Merge nearby and myPosts tests
- (map-options-test) Abstract testing an option to a function
- (map-options-test) Put variable setup closer to their tests
- (map-options-test) Replace magic constant by named 'completedChallengeIdx' one
- (map-options) Make pin view-model auto-disposed
- (map-options-test) Use full home page instead of map screen only
- (map-options-test) Abstract navigation tests to a function
- (ranking_card) Move constructor parameter closer to the constructor
- (ranking_card) Set static const variable to private
- (home-providers) Duplicate providers instead of adding additionalOverrides parameter
- (map-options-test) Rename testOption to testCurrentSelectionOptionAndPins
- (map-options-test) Use find.byType instead of find.byKey
- (map-options) Use geolocationService:getCurrentPosition
- (map-options-test) Remove userPost from challenges
- Rename PublicationHeader to PostCardHeader and move it
- Move user profile pop up out
- (user-pop-up) Use body large font for pseudo
- (create-account) Update min and max username length
- (create-account) Reduce max name length in tests and regex
- (test-create-account) Add var for min and max length
- (challenges) Replace AsyncNotifier by AutoDisposeAsyncNotifier
- (challenge-viewmodel-test) Centralize setUp
- (challenge-tests) Make var final
- (ranking-ui) Move components to a separate directory
- (more-e2e) Make generation function more concise
- (mock-geopoint) Typo in variable name
- (more-e2e) Create the post generator in the setup
- (more-e2e) Separate helper functions into another file
- (profile) Remove badges
- (map) Remove heatmap
- (profile) Remove settings icon
- (new-post) Remove settings button
- Remvoe NotImplemented class
- Rename NavigationBarRoutes
- (test) Replace NavigationBarRoutes
- (challenge-refresh-page) Use error refresh page everywhere
- (challenge-refresh-page) Name constants
- (cahllenge-refresh) Simplify refresh function
- (more-e2e) Put helper functions inside a class
📚 Documentation
- (profile) Correct typo
- (map-options-test) Add documentation to helper functions
- (map-options-test) Improve testing documentation
- (ranking_details) Add documentation for ranking details
- (ranking-ui) Fix documentation saying class instead of widget
- (ranking_widget) Add TODO view model integration on rankingDetails
- (map-options-view-model) Add class documentation
- (map-options) Add class documentation to MapSelectionOptionChips)
- (new-post) Add class documentation to NewPostViewModel
- (e2e-test) Add doc to helper functions
- (create-account-vm) Update doc with new min and max string lengths
- (challenge-viewmodel) Add justification for AutoDisposeAsyncNotifier<List>
- (ranking-vm) Fix comments in tests
- (ranking-vm) Documentation of
RankingPage
- (more-e2e) Document goToPoint
🎨 Styling
- Organise imports alphabetically
- (map-test) Remove unused import
🧪 Testing
- (profile) Add test to check the ordering user posts on the profile page
- (profile) Add function to get corresponding post firstore from post details
- (profile) Use fake firestore instance
- (profile) Add test for single post case
- (profile) Add test for empty posts case
- (map-options) Verify the default option is correct
- (map-options) Verify nearby posts pins
- (map-options) Verify user posts pins
- (map-options) Verify behaviour before clicking on any chip
- (map-options) Test all options twice for more robustness
- (map-options) Test 'Challenges' option
- (map-options) Add regression test for pin refresh on post creation
- (map-options) Add regression test for pin refresh on post deletion
- (map-options) Add regression test for pin refresh on challenge completion
- (ranking) Add test keys
- (ranking) Add mock data for ranking page
- (ranking_widget) Add static test
- (ranking_list) Add static test
- (ranking_list) Remove color check
- (ranking_list) Wrap test in group and rename test
- (ranking_widget) Wrap test in group and rename test
- (e2e-test) Add a challenge user flow
- (e2e-test) Test that points are given out on challenge completion
- (e2e-test) Test posting a comment
- (e2e-test) Test deleting a comment
- (e2e-test) Test distance updates with intermediate positions
- (e2e-test) Use regex to match the description
- (comment) Update mocks to take publication time
- (comment) Update hash and == tests with publication time
- (profile) Add test to check the ordering of user comment details
- (profile) Add test for empty user comments case
- (challenges) Test challenge distance update on move and refresh
- (ranking-vm) The
getTopUsers
method returns correctly with not enough users - (ranking-vm) Ranking viewmodel provider override setup up
- (ranknig-vm) Expect correct number of users returned
- (ranking-vm) Testing logged in user has correct values
- (ranking-vm) Correct values and ordering from viewmodel
- (ranking-vm) Test for correct refresh of viewmodel
- (ranking-vm) Add a test that combines UI and viewmodel ranking
- (ranking-vm) Use
overrideWithValue
to "allow better code homogeneity" - (ranking-vm) Use the
hasLength
matcher - (ranking-vm) Use
isSorted
instead ofreduce
>= - (ranknig-vm) Use
isNot(equals(.))
matcher instead of operator - (ranking-vm) Abstract the
rankingPageMockApp
intoprovider_ranking.dart
- (ranking-vm) Use
hasLength
matcher - (ranking-vm) Use
hasLength
matcher - (ranking-vm) Alternative to reduce in testing
- (challenge-refresh-page) Add a regression test
- (challenge-refresh-page) Find with key
- (challenge-refresh-page) Test refresh page
⚙️ Miscellaneous Tasks
- Bump project version to 0.4.1
Opt
- (map-selection) Only refresh chips on option change