Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
999 commits
Select commit Hold shift + click to select a range
1f3437c
fix non passing test.
EBali2003 Nov 10, 2025
959c969
chore : code format
Zay1939 Nov 10, 2025
35bfa3c
Merge branch 'EBali2003-feature/make-map-centered-on-current-location…
EBali2003 Nov 10, 2025
8f57782
Merge branch 'main' into bjlpedersen-fix/block-landscape-mode
bjlpedersen Nov 10, 2025
cc4994f
test : add test for MyBookingsTest
nahuelArthur Nov 10, 2025
2c5c18d
fix : change the call to the SessionManager to don't stop the code if…
nahuelArthur Nov 10, 2025
616dab4
modify tests to pass in CI
Nov 10, 2025
b660c25
Merge branch 'main' into nahuelArthur-feature/add-bookingCards-bookin…
nahuelArthur Nov 10, 2025
dc0bb9d
fix : address sonar cloud issues
Zay1939 Nov 10, 2025
c5484f3
Merge pull request #169 from SkillBridgeee/bjlpedersen-fix/block-land…
bjlpedersen Nov 10, 2025
a06d596
add tests for coverage.
EBali2003 Nov 10, 2025
a173f15
edit for formatting
EBali2003 Nov 10, 2025
747d8c6
Add a helper function to pass tests on CI
Nov 10, 2025
95c0877
Merge branch 'main' into Zay1939-feature/save-button-navigates-back
Zay1939 Nov 10, 2025
2e07667
test : add test for MyBookingScreen
nahuelArthur Nov 10, 2025
5028c26
docs : change few comments
nahuelArthur Nov 10, 2025
32f6854
refactor : clean code and add test file for BookingdDetailsViewModel …
nahuelArthur Nov 10, 2025
67af7cd
test: implement test for the MyProfileScreen
GuillaumeLepin Nov 10, 2025
7248138
test : add BookingDetailsViewModelTest
nahuelArthur Nov 10, 2025
5a0c4a3
fix : fix reasign value of the uiState when error in laod
nahuelArthur Nov 10, 2025
404c642
Merge pull request #177 from SkillBridgeee/Zay1939-feature/save-butto…
Zay1939 Nov 10, 2025
c04705f
Merge branch 'main' into nahuelArthur-feature/add-bookingCards-bookin…
nahuelArthur Nov 10, 2025
b73687b
Fix tests
Nov 10, 2025
0696e8c
Merge branch 'main' into SanemSarioglu/feature/subtopic-listings
SanemSarioglu Nov 10, 2025
67bbfac
test : add test tags to BookingDetailsScreen
nahuelArthur Nov 10, 2025
0304c8f
Fix to pass CI
Nov 10, 2025
5439472
test : add test for BookingDetailsScreen
nahuelArthur Nov 10, 2025
101edd4
test: add line coverage
GuillaumeLepin Nov 10, 2025
8cfe3af
Fix tests
Nov 10, 2025
ff25c47
format with KTFMT
GuillaumeLepin Nov 10, 2025
17accf1
test : fix test for Subject list viewModel
nahuelArthur Nov 10, 2025
a37dcf1
Merge remote-tracking branch 'origin' into GuillaumeLepin-feature/imp…
GuillaumeLepin Nov 10, 2025
f6c2e09
Format with ktfmt and correct errors after merge
GuillaumeLepin Nov 10, 2025
78adae8
change tests to addapt to new version after merge
GuillaumeLepin Nov 10, 2025
7dc9268
Fix helpers for CI stability
Nov 10, 2025
d0ad32d
fix : fix call to session manager
nahuelArthur Nov 10, 2025
e1f0fdb
refactor : fix sonarCloud issues
nahuelArthur Nov 10, 2025
a40741f
test : add test for helper function in booking
nahuelArthur Nov 10, 2025
faa3f8c
test : add test for BookingDetailsScreen
nahuelArthur Nov 10, 2025
3dc385b
docs : add docs for BookingDetailsScreen
nahuelArthur Nov 10, 2025
d1dd430
Fix tests
Nov 10, 2025
f5940aa
Merge branch 'main' of github.com:SkillBridgeee/SkillBridgeee into EB…
EBali2003 Nov 10, 2025
bb00073
Fix tests to pass CI
Nov 10, 2025
23c36c0
Try past tests
Nov 10, 2025
379acfc
add tests for coverage
EBali2003 Nov 10, 2025
8120776
Got rid of some tests
Nov 10, 2025
320335f
add more tests for coverage
EBali2003 Nov 10, 2025
a00764d
Truncate long inputs in login, signup and profile page
Nov 11, 2025
6246cbd
Forgot format
Nov 11, 2025
3e42be1
Add test for line coverage
Nov 11, 2025
c03b45e
Fix test
Nov 11, 2025
1db8739
Merge pull request #172 from SkillBridgeee/SanemSarioglu/feature/subt…
SanemSarioglu Nov 11, 2025
61c2dd2
remove changes for the BookingRepository since they will be fixed wit…
EBali2003 Nov 11, 2025
332f9cf
Merge branch 'main' of github.com:SkillBridgeee/SkillBridgeee into EB…
EBali2003 Nov 11, 2025
fccb660
format files
EBali2003 Nov 11, 2025
2d99f34
feat: add test-only user ID management methods in UserSessionManager
NedenSinir Nov 11, 2025
277dfa3
feat: add test-only user ID management methods in UserSessionManager
NedenSinir Nov 11, 2025
8d5ceef
feat: enhance MyProfileScreen with listing click handling and navigation
NedenSinir Nov 11, 2025
d53c565
feat: update SubjectListScreen to use ProposalCard and RequestCard fo…
NedenSinir Nov 11, 2025
9872073
feat: implement ListingViewModel for managing listing details and boo…
NedenSinir Nov 11, 2025
78a9d18
Merge branch 'main' into nahuelArthur-feature/add-bookingCards-bookin…
nahuelArthur Nov 11, 2025
ec188f6
feat: remove unused navigation and test cases from Profile and Subjec…
NedenSinir Nov 11, 2025
948a622
refactor: remove GitHub sign-in functionality from LoginScreen and re…
bjlpedersen Nov 11, 2025
dbcbf45
feat: enhance ListingViewModel and SubjectListScreen with error loggi…
NedenSinir Nov 11, 2025
8f64508
feat: add session time validation and enhance ProfileScreen with opti…
NedenSinir Nov 11, 2025
e2babb6
Improve code following review comments
GuillaumeLepin Nov 11, 2025
6b2e185
Merge remote-tracking branch 'origin' into GuillaumeLepin-feature/imp…
GuillaumeLepin Nov 11, 2025
5f09a96
feat: remove unused import for ArrowBack icon in ProfileScreen
NedenSinir Nov 11, 2025
df926a3
apply changes according to the review.
EBali2003 Nov 11, 2025
b982bb9
Merge pull request #185 from SkillBridgeee/NedenSinir-feature/booking…
NedenSinir Nov 11, 2025
6f93698
refactor: removed commented out tests
bjlpedersen Nov 11, 2025
330574c
Merge branch 'main' of github.com:SkillBridgeee/SkillBridgeee into EB…
EBali2003 Nov 11, 2025
dc5063d
apply changes according to the review.
EBali2003 Nov 11, 2025
c33dc7f
Merge pull request #171 from SkillBridgeee/EBali2003-feature/make-map…
bjlpedersen Nov 11, 2025
d2eb951
Merge branch 'main' into bjlpedersen-refactor/remove-github-sign-in
bjlpedersen Nov 11, 2025
639d09a
add changes to firebase and the build files to use firebase emulators…
EBali2003 Nov 11, 2025
1748635
refactor: removed commented out tests
bjlpedersen Nov 11, 2025
591ecdb
Merge branch 'main' into nahuelArthur-feature/add-bookingCards-bookin…
nahuelArthur Nov 11, 2025
63beab1
add tests for coverage and format files
EBali2003 Nov 11, 2025
d3bc1f5
refactor : fix reviewer issue in BookingsDetailsScreen
nahuelArthur Nov 11, 2025
9d0078f
refactor : fix according to the review (null handling and bad name fo…
nahuelArthur Nov 11, 2025
17fd9b6
refactor : put message text in box to improve the UI readability
nahuelArthur Nov 11, 2025
f73f7aa
refactor : make all the repository private val
nahuelArthur Nov 11, 2025
57f41ef
refactor : change all the tutor name to creator name
nahuelArthur Nov 11, 2025
d2746f0
refactor : delete BookingListing(), that will be implemented later
nahuelArthur Nov 11, 2025
de74d56
fix : fix the tests
nahuelArthur Nov 11, 2025
ae28628
Merge pull request #174 from SkillBridgeee/nahuelArthur-feature/add-b…
nahuelArthur Nov 11, 2025
084e94a
Merge branch 'main' into bjlpedersen-refactor/remove-github-sign-in
bjlpedersen Nov 12, 2025
9d100b3
feat: add BookingCard component for displaying booking details with a…
NedenSinir Nov 12, 2025
ce19ab7
feat: add BookingDialog component for session booking with date and t…
NedenSinir Nov 12, 2025
6456852
feat: add BookingsSection component for displaying and managing bookings
NedenSinir Nov 12, 2025
421d9d5
feat: add ListingContent and ListingScreen components for displaying …
NedenSinir Nov 12, 2025
7cf69f1
Merge pull request #186 from SkillBridgeee/bjlpedersen-refactor/remov…
bjlpedersen Nov 12, 2025
d21ddea
fix: prevent loading profile with empty userId in MyProfileViewModel
bjlpedersen Nov 12, 2025
a9c4854
Merge branch 'main' into NedenSinir-feature/listing-ui
NedenSinir Nov 12, 2025
2d95e41
Merge branch 'main' of github.com:SkillBridgeee/SkillBridgeee into EB…
EBali2003 Nov 12, 2025
6732495
Add check for listings and profile, so that they are not blank or pas…
Nov 12, 2025
72342e8
Fix my function to accept empty string in the beginnning
Nov 12, 2025
93777d2
Merge branch 'main' into feature/truncate-long-input
SanemSarioglu Nov 12, 2025
e42ffc8
Merge and fix overwritten code
GuillaumeLepin Nov 12, 2025
0bc08d7
Merge remote-tracking branch 'origin' into GuillaumeLepin-feature/imp…
GuillaumeLepin Nov 12, 2025
fe902cb
chhqnge after merge
GuillaumeLepin Nov 12, 2025
787fb9f
Little modification to Myprofilescreen to pass CI
Nov 12, 2025
dd3945d
Remove component invocation in the wrong place
GuillaumeLepin Nov 12, 2025
1eae176
Format code with KTFMT
GuillaumeLepin Nov 12, 2025
6d7075b
refactor: remove redundant error dialog tests in ListingScreenTest
NedenSinir Nov 12, 2025
7bc9832
Merge pull request #190 from SkillBridgeee/bjlpedersen-fix/logout-log…
bjlpedersen Nov 12, 2025
258b3b8
Merge remote-tracking branch 'origin/NedenSinir-feature/listing-ui' i…
NedenSinir Nov 12, 2025
3c5fcde
Merge branch 'main' into feature/truncate-long-input
SanemSarioglu Nov 12, 2025
145fb2b
fix map to have the current location dot and also the current locatio…
EBali2003 Nov 12, 2025
6c7d553
format files.
EBali2003 Nov 12, 2025
0f85c77
Merge branch 'main' into GuillaumeLepin-feature/improve-ui-for-MyProf…
GuillaumeLepin Nov 12, 2025
e2a7503
test : add fake booking repository for testing
nahuelArthur Nov 12, 2025
9dd74fa
fix: navigate back on successful listing addition and clear success s…
bjlpedersen Nov 12, 2025
99f4f69
Merge branch 'main' into NedenSinir-feature/listing-ui
NedenSinir Nov 12, 2025
314642d
Merge pull request #179 from SkillBridgeee/GuillaumeLepin-feature/imp…
GuillaumeLepin Nov 12, 2025
841b503
Merge branch 'main' of github.com:SkillBridgeee/SkillBridgeee into EB…
EBali2003 Nov 12, 2025
48f0582
Merge branch 'main' into EBali2003-fix/fix-map-not-having-current-loc…
EBali2003 Nov 12, 2025
8f682c6
refactor: modularize ListingContent by extracting reusable components
NedenSinir Nov 12, 2025
8c4629d
fix: sonar cloud issues
bjlpedersen Nov 12, 2025
45f13d1
Merge branch 'main' into bjlpedersen-fix/create-listing-button-naviga…
bjlpedersen Nov 12, 2025
80edb6e
fix: format
bjlpedersen Nov 12, 2025
013e8d0
Merge branch 'bjlpedersen-fix/create-listing-button-navigates-when-em…
bjlpedersen Nov 12, 2025
13fabbd
Add location testtag to NewSkillScreen
Nov 12, 2025
91853b8
fix mapScreen according to review.
EBali2003 Nov 12, 2025
fd2a218
Merge branch 'EBali2003-fix/fix-map-not-having-current-location-issue…
EBali2003 Nov 12, 2025
e1b48d4
Add error message testtag and test for location
Nov 12, 2025
100b5d1
Merge pull request #192 from SkillBridgeee/EBali2003-fix/fix-map-not-…
bjlpedersen Nov 12, 2025
51764a1
Merge branch 'main' into sanemsarioglu-test/add-location-tags-new-ski…
SanemSarioglu Nov 12, 2025
db55008
Merge branch 'main' of github.com:SkillBridgeee/SkillBridgeee into EB…
EBali2003 Nov 12, 2025
7a4d3a2
Merge branch 'main' into bjlpedersen-fix/create-listing-button-naviga…
bjlpedersen Nov 12, 2025
62c1eb2
add different file structure and firebase structure so that the fires…
EBali2003 Nov 12, 2025
df9d38a
fix: format
bjlpedersen Nov 12, 2025
f3bc748
Merge branch 'bjlpedersen-fix/create-listing-button-navigates-when-em…
bjlpedersen Nov 12, 2025
82316da
Modify according to the review
Nov 12, 2025
bb6f4d4
Delete popBackStack() which was causing CI to fail
Nov 12, 2025
1541732
fix MainActivityTest.kt issue.
EBali2003 Nov 12, 2025
7b77fad
fix: compilation issues from renaming
bjlpedersen Nov 12, 2025
091b0a2
Merge branch 'bjlpedersen-fix/create-listing-button-navigates-when-em…
bjlpedersen Nov 12, 2025
90a6fa4
Merge branch 'main' into feature/truncate-long-input
SanemSarioglu Nov 12, 2025
84655e4
Removed problematic test
Nov 12, 2025
b9c24f5
fix MainActivityTest.kt coverage issue.
EBali2003 Nov 12, 2025
e3c7c3b
test : add fake repository for listing
nahuelArthur Nov 12, 2025
22becc1
test : add fake Profile repository
nahuelArthur Nov 12, 2025
73cebb5
test : add initial size in the fake bookingRepo for testing
nahuelArthur Nov 12, 2025
ae470cf
fix: renamed variable
bjlpedersen Nov 12, 2025
a10cd53
test : implement empty listing repo
nahuelArthur Nov 12, 2025
46ff57c
test : change MyBookingsViewModelTest to use the new fake repositoy
nahuelArthur Nov 12, 2025
9443535
test : implement ListingFakeRepoError
nahuelArthur Nov 12, 2025
53f1c97
test : implement ProfileFakeRepoError
nahuelArthur Nov 12, 2025
6d149ca
test : add test for MyBookingsViewModel
nahuelArthur Nov 12, 2025
b8e7671
fix MainActivityTest.kt coverage issue again.
EBali2003 Nov 12, 2025
a94ece7
Add popBackStack
Nov 12, 2025
eec30e3
Merge branch 'main' into NedenSinir-feature/listing-ui
NedenSinir Nov 12, 2025
f16b0ad
Merge pull request #193 from SkillBridgeee/bjlpedersen-fix/create-lis…
bjlpedersen Nov 12, 2025
d6d0495
refactor: improve code readability by extracting string constants and…
NedenSinir Nov 12, 2025
bc7e9c9
Merge branch 'main' into NedenSinir-feature/listing-ui
NedenSinir Nov 12, 2025
c169e4c
Merge branch 'main' into feature/truncate-long-input
SanemSarioglu Nov 12, 2025
67b97f1
Merge pull request #188 from SkillBridgeee/NedenSinir-feature/listing-ui
NedenSinir Nov 12, 2025
ef08ed0
Merge branch 'main' into feature/truncate-long-input
SanemSarioglu Nov 12, 2025
5374d02
test : change BookingsDetailsViewModel to use the new FakeRepository
nahuelArthur Nov 12, 2025
871c434
test : clean code
nahuelArthur Nov 12, 2025
b04b62b
Merge branch 'main' into nahuelArthur-test/add-mock-repositories
nahuelArthur Nov 12, 2025
e91d852
Fix sonar cloud issue
Nov 12, 2025
a0dd073
test : complete fakeRepo implementation
nahuelArthur Nov 12, 2025
3e84e30
refactor : clean code
nahuelArthur Nov 12, 2025
f3ebcf5
docs : add comments for the fake repository
nahuelArthur Nov 12, 2025
cced871
Add test tags for location
Nov 12, 2025
83e007f
remove unnecessary logging from MainActivity.kt.
EBali2003 Nov 12, 2025
d37240c
Merge pull request #184 from SkillBridgeee/feature/truncate-long-input
NedenSinir Nov 12, 2025
f09cbd0
Merge branch 'main' of github.com:SkillBridgeee/SkillBridgeee into EB…
EBali2003 Nov 12, 2025
d0b4f84
Merge branch 'main' into EBali2003-chore/fix-apk-for-release
EBali2003 Nov 12, 2025
46067b9
Merge branch 'main' into nahuelArthur-test/add-mock-repositories
nahuelArthur Nov 12, 2025
837dd98
Merge branch 'main' into sanemsarioglu-test/new-add-location-tags-new…
SanemSarioglu Nov 12, 2025
e4cff34
feat : add title to listing
nahuelArthur Nov 12, 2025
cb980a0
feat : add the title when creating a new Listing
nahuelArthur Nov 12, 2025
68ad35d
feat : change the title in the bookingCard in MyBookingsScreen
nahuelArthur Nov 12, 2025
2cc69c4
refactor : change functin displayTitle to cleary indicate if no title
nahuelArthur Nov 12, 2025
02bfb46
Merge pull request #198 from SkillBridgeee/sanemsarioglu-test/new-add…
SanemSarioglu Nov 12, 2025
47cb202
fix : fix problem of infinite scrollable Screen
nahuelArthur Nov 12, 2025
f38fef8
Merge branch 'main' into nahuelArthur-fix/ListingScreen-infinite-scro…
nahuelArthur Nov 12, 2025
45d371e
Merge branch 'main' into nahuelArthur-test/add-mock-repositories
nahuelArthur Nov 12, 2025
0e11b2e
test : fix test to be consistent with the new implementation
nahuelArthur Nov 12, 2025
60c8475
Merge branch 'main' into EBali2003-chore/fix-apk-for-release
bjlpedersen Nov 12, 2025
1e795e7
Merge pull request #196 from SkillBridgeee/nahuelArthur-test/add-mock…
nahuelArthur Nov 12, 2025
55ef79f
Merge branch 'main' into nahuelArthur-fix/ListingScreen-infinite-scro…
nahuelArthur Nov 12, 2025
31dc9d3
Merge branch 'main' into nahuelArthur-refactor/add-Title-argument-to-…
nahuelArthur Nov 12, 2025
a4bc7d6
Merge branch 'main' into EBali2003-chore/fix-apk-for-release
bjlpedersen Nov 12, 2025
caf3405
Merge branch 'EBali2003-chore/fix-apk-for-release' of github.com:Skil…
EBali2003 Nov 12, 2025
5d3a5ef
fix according to review.
EBali2003 Nov 12, 2025
fa52d81
uninplement a fix since it doesn't work with the way our CI works.
EBali2003 Nov 12, 2025
eecafb1
implement E2E test
GuillaumeLepin Nov 12, 2025
e9d1112
Merge remote-tracking branch 'origin' into GuillaumeLepin-test/end-to…
GuillaumeLepin Nov 12, 2025
13d4284
format code with ktfmt
GuillaumeLepin Nov 12, 2025
ddd3ed6
Merge pull request #187 from SkillBridgeee/EBali2003-chore/fix-apk-fo…
bjlpedersen Nov 13, 2025
b3608aa
Merge branch 'main' into nahuelArthur-fix/ListingScreen-infinite-scro…
nahuelArthur Nov 13, 2025
a80cac5
Merge pull request #200 from SkillBridgeee/nahuelArthur-fix/ListingSc…
nahuelArthur Nov 13, 2025
bf58e5f
Merge remote-tracking branch 'origin' into GuillaumeLepin-test/end-to…
GuillaumeLepin Nov 13, 2025
09e412a
Modify the end to end following CI fail
GuillaumeLepin Nov 13, 2025
f6e0768
Merge branch 'main' into nahuelArthur-refactor/add-Title-argument-to-…
nahuelArthur Nov 13, 2025
aba2093
docs : delete old todo
nahuelArthur Nov 13, 2025
868af96
implement more tests in E2E
GuillaumeLepin Nov 13, 2025
6c581fc
format code with ktfmt
GuillaumeLepin Nov 13, 2025
d40d88b
add tests
GuillaumeLepin Nov 13, 2025
a11eaec
fix : display the listing title in BookingDetails and add docs
nahuelArthur Nov 13, 2025
7673937
feat(newListingScreen): add “Use my location” GPS autofill
Zay1939 Nov 13, 2025
60e7e22
fix the map api key not working in the git APK.
EBali2003 Nov 13, 2025
a96bb48
Merge pull request #199 from SkillBridgeee/nahuelArthur-refactor/add-…
nahuelArthur Nov 13, 2025
ba3aab7
Merge branch 'main' into Zay1939-feature/newListing-use-my-location
Zay1939 Nov 13, 2025
9e0d53c
feat : add text of the status in BookingDetails
nahuelArthur Nov 13, 2025
3d5400d
test : add test for status
nahuelArthur Nov 13, 2025
fada82e
Merge branch 'main' into EBali2003-chore/fix-apk-for-release
bjlpedersen Nov 13, 2025
14e6afe
test(newListing) : add tests for the new use my location feature
Zay1939 Nov 13, 2025
9b20f2c
Change the end to end test and make it look like a normal utilization
GuillaumeLepin Nov 13, 2025
5477d90
refactor : clean code
nahuelArthur Nov 13, 2025
5942b7f
After booking direct to home page
Nov 13, 2025
9c62eb2
Format with ktfmt
GuillaumeLepin Nov 13, 2025
fa03587
test : add tests to increase coverage on newly added code
Zay1939 Nov 13, 2025
ea0dbd8
Merge branch 'main' into GuillaumeLepin-test/end-to-end-M2
GuillaumeLepin Nov 13, 2025
dedc32b
chore : code format
Zay1939 Nov 13, 2025
64d3357
fix : make the ListingScreen scrollable
nahuelArthur Nov 13, 2025
6f46ed5
Add default no-op so all existing tests
Nov 13, 2025
46ac909
change way the mayactivity is launched
GuillaumeLepin Nov 13, 2025
cd7e50d
Merge remote-tracking branch 'origin' into GuillaumeLepin-test/end-to…
GuillaumeLepin Nov 13, 2025
778b1e1
Merge remote-tracking branch 'refs/remotes/origin/GuillaumeLepin-test…
GuillaumeLepin Nov 13, 2025
7b6f92e
Merge pull request #207 from SkillBridgeee/EBali2003-chore/fix-apk-fo…
bjlpedersen Nov 13, 2025
33bf196
test : add tests to increase coverage on newly added code
Zay1939 Nov 13, 2025
dfb5a6b
Merge branch 'main' into Zay1939-feature/newListing-use-my-location
Zay1939 Nov 13, 2025
2c68630
Merge branch 'main' into sanemsarioglu-fix/booking-redirect-listing-n…
SanemSarioglu Nov 13, 2025
cbc0f52
test stuff
GuillaumeLepin Nov 13, 2025
dbd32e5
refactor : clean code
nahuelArthur Nov 13, 2025
9a1bd64
refactor : clean code
nahuelArthur Nov 13, 2025
db2e9e7
test : add tests to improve coverage on new added code
Zay1939 Nov 13, 2025
bf4fc1c
REmove E2E tests but still keep them as comments to test locally
GuillaumeLepin Nov 13, 2025
ce4128c
test : delete tests to check coverage
nahuelArthur Nov 13, 2025
ef3ceee
Fix sonar cloud issues
Nov 13, 2025
9bcf984
Merge pull request #206 from SkillBridgeee/Zay1939-feature/newListing…
Zay1939 Nov 13, 2025
4e6d227
Merge branch 'main' into sanemsarioglu-fix/booking-redirect-listing-n…
SanemSarioglu Nov 13, 2025
09d3fa6
test : add tests for BookingSection
nahuelArthur Nov 13, 2025
2ceef0e
refactor : restrict location in BookingDetails
nahuelArthur Nov 13, 2025
465e417
refactor : clean code
nahuelArthur Nov 13, 2025
78860ea
Merge branch 'main' into nahuelArthur-feature/make-listing-scrollable…
nahuelArthur Nov 13, 2025
6698a64
Merge pull request #209 from SkillBridgeee/sanemsarioglu-fix/booking-…
SanemSarioglu Nov 13, 2025
cb2e839
Merge branch 'main' into GuillaumeLepin-test/end-to-end-M2
GuillaumeLepin Nov 13, 2025
0f94ce1
test : add test
nahuelArthur Nov 13, 2025
38722c3
test : add test
nahuelArthur Nov 13, 2025
c920ce8
Merge branch 'main' into nahuelArthur-feature/make-listing-scrollable…
nahuelArthur Nov 13, 2025
27617bd
KTFMT format
GuillaumeLepin Nov 13, 2025
a2f0a60
Merge pull request #208 from SkillBridgeee/nahuelArthur-feature/make-…
NedenSinir Nov 13, 2025
baadfe1
Merge branch 'main' into GuillaumeLepin-test/end-to-end-M2
NedenSinir Nov 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .firebaserc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"projects": {
"default": "skillbridge-46ee3"
}
}
25 changes: 25 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# What I did
<!-- Example: I implemented the login functionality with Google... -->

# How I did it
<!-- Example:
- I added a new screen with a “Login with Google” button. You can access the screen by...
- To make the login work I installed `google-auth` and connected it with Firebase...
-->

# How to verify it
<!-- Example:
1) Tap the login button
2) Long-press to open help
3) Confirm you see user info after auth
-->

# Demo video
<!-- Whenever possible, attach or link a short video/gif so others can reproduce. -->

# Pre-merge checklist
The changes I introduced:
- [ ] work correctly
- [ ] do not break other functionalities
- [ ] work correctly on Android
- [ ] are fully tested (or have tests added)
46 changes: 44 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ jobs:
submodules: recursive
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of Sonar analysis (if we use Sonar Later)


# Kernel-based Virtual Machine (KVM) is an open source virtualization technology built into Linux. Enabling it allows the Android emulator to run faster.
- name: Enable KVM group perms
run: |
Expand Down Expand Up @@ -73,6 +72,47 @@ jobs:
run: |
chmod +x ./gradlew

- name: Create local.properties
env:
LOCAL_PROPERTIES: ${{ secrets.LOCAL_PROPERTIES }}
run: |
echo "sdk.dir=$ANDROID_SDK_ROOT" > ./local.properties
if [ -n "$LOCAL_PROPERTIES" ]; then
echo "$LOCAL_PROPERTIES" | base64 --decode >> ./local.properties
echo "✅ LOCAL_PROPERTIES decoded and configured"
else
echo "::warning::LOCAL_PROPERTIES secret not set. Creating default local.properties."
echo "MAPS_API_KEY=DEFAULT_API_KEY" >> ./local.properties
fi

- name: Decode google-services.json
env:
GOOGLE_SERVICES: ${{ secrets.GOOGLE_SERVICES }}
run: |
if [ -n "$GOOGLE_SERVICES" ]; then
echo "$GOOGLE_SERVICES" | base64 --decode > ./app/google-services.json
else
echo "::warning::GOOGLE_SERVICES secret not set. google-services.json will not be created."
fi

# Setup Node.js for Firebase CLI
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'

# Install Firebase CLI
- name: Install Firebase CLI
run: npm install -g firebase-tools

# Start Firebase Emulators
- name: Start Firebase Emulators
run: |
firebase emulators:start --only firestore,auth --project demo-test &
echo "Waiting for emulators to start..."
sleep 15
echo "Emulators should be running now"

# Check formatting
- name: KTFmt Check
run: |
Expand All @@ -89,6 +129,8 @@ jobs:
run: |
# To run the CI with debug information, add --info
./gradlew check --parallel --build-cache
env:
CI: true

# Run connected tests on the emulator
- name: run tests
Expand All @@ -112,4 +154,4 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: ./gradlew sonar --parallel --build-cache
run: ./gradlew sonar --parallel --build-cache
78 changes: 78 additions & 0 deletions .github/workflows/generate-apk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: Generate APK (manual)

on:
# Manual trigger only – will show "Run workflow" button in Actions tab
workflow_dispatch:
inputs:
build_type:
description: "Which build type to assemble (debug or release)"
required: true
default: "debug"

jobs:
build:
name: Build ${{ github.event.inputs.build_type }} APK
runs-on: ubuntu-latest

steps:
# 1 Checkout your code
- name: Checkout repository
uses: actions/checkout@v4

# 2 Set up Java (AGP 8.x → needs JDK 17)
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
distribution: temurin
java-version: 17
cache: gradle

# 3 Set up Android SDK (single-line package list to avoid parsing issues)
- name: Set up Android SDK
uses: android-actions/setup-android@v3
with:
packages: platform-tools platforms;android-34 build-tools;34.0.0

# 4 Accept all Android SDK licenses
- name: Accept Android SDK licenses
run: yes | sdkmanager --licenses || true

# 5 Create local.properties with SDK path and API keys
- name: Configure local.properties
env:
LOCAL_PROPERTIES: ${{ secrets.LOCAL_PROPERTIES }}
run: |
echo "sdk.dir=$ANDROID_SDK_ROOT" > local.properties
if [ -n "$LOCAL_PROPERTIES" ]; then
echo "$LOCAL_PROPERTIES" | base64 --decode >> local.properties
echo "✅ LOCAL_PROPERTIES decoded and configured"
else
echo "::warning::LOCAL_PROPERTIES secret not set. Using default values."
echo "MAPS_API_KEY=DEFAULT_API_KEY" >> local.properties
fi

# 6 Restore google-services.json from GitHub secret
- name: Restore google-services.json
run: |
echo "${{ secrets.GOOGLE_SERVICES }}" | base64 --decode > app/google-services.json


# 7 Make gradlew executable (sometimes loses permission)
- name: Grant Gradle wrapper permissions
run: chmod +x ./gradlew

# 8 Build APK
- name: Build ${{ github.event.inputs.build_type }} APK
run: |
if [ "${{ github.event.inputs.build_type }}" = "release" ]; then
./gradlew :app:assembleRelease --no-daemon --stacktrace
else
./gradlew :app:assembleDebug --no-daemon --stacktrace
fi

# 9 Upload APK artifact so you can download it from GitHub Actions UI
- name: Upload APK artifact
uses: actions/upload-artifact@v4
with:
name: app-${{ github.event.inputs.build_type }}-apk
path: app/build/outputs/apk/**/${{ github.event.inputs.build_type }}/*.apk
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,5 @@
.externalNativeBuild
.cxx
local.properties
ui-debug.log
*.log
Empty file added .scannerwork/.sonar_lock
Empty file.
141 changes: 141 additions & 0 deletions CREDENTIAL_MANAGER_INTEGRATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
# Credential Manager Integration Summary

## What Changed

I've successfully updated your authentication system to use **Android Credential Manager API** - Google's modern, recommended approach for handling authentication credentials.

## Benefits of Credential Manager

1. **Unified API** - Single interface for passwords, passkeys, and federated sign-in
2. **Better UX** - Native Android credential picker UI
3. **Security** - Built-in protection against phishing and credential theft
4. **Future-proof** - Supports upcoming passkeys and biometric authentication
5. **Auto-fill Integration** - Seamless integration with Android's password managers

## Implementation Details

### New Dependencies Added

In `libs.versions.toml`:
```toml
credentialManager = "1.2.2"
googleIdCredential = "1.1.1"
```

In `build.gradle.kts`:
```kotlin
implementation(libs.androidx.credentials)
implementation(libs.androidx.credentials.play.services)
implementation(libs.googleid)
```

### Files Modified/Created

1. **CredentialAuthHelper.kt** (NEW)
- Manages Credential Manager for password autofill
- Provides GoogleSignInClient for Google authentication
- Converts credentials to Firebase auth tokens

2. **AuthenticationViewModel.kt** (UPDATED)
- Now uses CredentialAuthHelper instead of GoogleSignInHelper
- Added `getSavedCredential()` - retrieves saved passwords from Credential Manager
- Uses `getGoogleSignInClient()` for Google Sign-In flow
- Handles activity results for Google Sign-In

3. **MainActivity.kt** (UPDATED)
- Uses `rememberLauncherForActivityResult` for Google Sign-In
- Simplified LoginApp setup with activity result handling

4. **GoogleSignInHelper.kt** (REPLACED)
- Old file is no longer needed
- Functionality merged into CredentialAuthHelper

## How It Works

### Password Authentication with Credential Manager

```kotlin
// User can retrieve saved credentials
viewModel.getSavedCredential() // Auto-fills email/password from saved credentials

// Regular sign-in still works
viewModel.signIn() // Signs in with email/password
```

The Credential Manager will:
- Show a native Android picker with saved credentials
- Auto-fill the login form
- Offer to save new credentials after successful login

### Google Sign-In

The implementation uses a **hybrid approach**:
- **Credential Manager** for password credentials (modern API)
- **Google Sign-In SDK** for Google authentication (more reliable and simpler)

The flow:
1. User clicks "Sign in with Google"
2. Activity result launcher opens Google Sign-In UI
3. User selects Google account
4. ViewModel processes the result and signs into Firebase

## Key Features

✅ **Password Autofill** - Credential Manager provides saved passwords
✅ **Google Sign-In** - Seamless Google authentication flow
✅ **Email/Password** - Traditional email/password authentication
✅ **Password Reset** - Send password reset emails
✅ **Role Selection** - Choose between Learner and Tutor
✅ **MVVM Architecture** - Clean separation of concerns
✅ **Firebase Integration** - Works with Firebase Auth and emulators

## Usage Example

```kotlin
@Composable
fun LoginApp() {
val viewModel = AuthenticationViewModel(context)

// Register Google Sign-In launcher
val googleSignInLauncher = rememberLauncherForActivityResult(
contract = ActivityResultContracts.StartActivityForResult()
) { result ->
viewModel.handleGoogleSignInResult(result)
}

// Optional: Try to load saved credentials on start
LaunchedEffect(Unit) {
viewModel.getSavedCredential()
}

LoginScreen(
viewModel = viewModel,
onGoogleSignIn = {
val signInIntent = viewModel.getGoogleSignInClient().signInIntent
googleSignInLauncher.launch(signInIntent)
})
}
```

## Testing

The authentication system is ready to test:
- **Email/Password**: Enter credentials and click Sign In
- **Google Sign-In**: Click the Google button to launch Google account picker
- **Password Autofill**: Android will offer to save/retrieve credentials
- **Firebase Emulator**: Works with your existing emulator setup (10.0.2.2:9099)

## Future Enhancements

The Credential Manager API is ready for:
- **Passkeys** - Passwordless authentication (coming soon)
- **Biometric Auth** - Fingerprint/face authentication
- **Cross-device Credentials** - Sync credentials across devices
- **Third-party Password Managers** - Integration with 1Password, LastPass, etc.

## Notes

- The old `GoogleSignInHelper.kt` file can be deleted
- Minor warning about context leak is acceptable for ViewModels with application context
- The `getSavedCredential()` function is available but not currently used in the UI (you can add a button for it later)

58 changes: 58 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# 🎓 SkillBridge

**SkillBridge** is a peer-to-peer learning marketplace that connects students who want to learn with other students who can teach.

Our mission is to make learning **affordable, flexible, and community-driven** by leveraging the skills already available within the student community.

Many students struggle to afford professional tutoring, while others want to earn money or gain experience by teaching what they know.

With **SkillBridge**:
- Learners get affordable help in both academics and hobbies.
- Tutors earn extra income and experience by sharing their skills.
- The student community becomes a self-sustaining support network.

---

## 🎯 Target Users
- **Ava**: a first-year student looking for affordable math tutoring.
- **Liam**: a third-year student who wants to earn money by offering piano lessons.

---

## 🚀 Features
- 🔐 Secure sign-up & login via email or university SSO with **Firebase Authentication**
- 👩‍🏫 Role-based profiles: **Learner, Tutor, or Both**
- 📍 Location-based search using **GPS** to find and sort nearby tutors on a map
- 📝 Booking system for lessons and scheduling
- ⭐ Ratings and reviews for tutors
- 💾 **Offline mode**: access to profiles, saved tutors, and booked lessons without internet

---

## 🏗️ Tech Stack
- **Frontend**: Mobile app (Kotlin)
- **Backend**: Google Firebase (Cloud Firestore, Authentication, Cloud Functions)
- **Device Features**: GPS/location services, local caching for offline support

---

## 📡 Offline Mode
- ✅ Available offline: profile, saved tutors, booked lessons
- 🔄 Online required: new tutor listings, updated ratings, personalized recommendations



## 🔒 Security
- Accounts managed with **Firebase Authentication**
- Role-based permissions (Learner / Tutor)
- Data stored securely in **Cloud Firestore** with strict access rules


## 🎨 Design (Figma)
We use **Figma** to create mockups and track design work.

- 🔗 [SkillSwap Mockup on Figma](https://www.figma.com/design/KLu1v4Q1ahcIgpufrbxQCV/SkillBridge-mockup?node-id=0-1&t=MaZllQ2pNaWYwCoW-1)
- ✅ All team members have **edit access**.
- 👩‍💻 **Dev Mode** is enabled so developers can inspect styles and assets.
- 🌍 File is set to **public view** so course staff can access it.

4 changes: 3 additions & 1 deletion app/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,6 @@

/build
/app/build
local.properties
local.properties

google-services.json
Loading