Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
427 commits
Select commit Hold shift + click to select a range
0b08566
feat(booking): add FakeBookingRepository & integrate repo API into Vi…
Oct 13, 2025
6e15c7f
Implement navigation framework
bjlpedersen Oct 5, 2025
916ddf2
Implement navigation framework
bjlpedersen Oct 5, 2025
8768114
test: update navigation tests to use AndroidComposeRule and improve a…
bjlpedersen Oct 5, 2025
328af2f
Remove template test files with missing components
bjlpedersen Oct 5, 2025
eb30c31
SonarCloud: added tests to try and reach 80% coverage (last one was 69%)
bjlpedersen Oct 5, 2025
b5db6ad
SonarCloud: added tests to try and reach 80% coverage (last one was 69%)
bjlpedersen Oct 5, 2025
13d86fb
refactor: improve navigation flow and add comprehensive testing
bjlpedersen Oct 9, 2025
b56a1cf
Add manual APK generation workflow
bjlpedersen Oct 11, 2025
4da2cfe
Fix: remove apk workflow file to fix non display issue of the action …
bjlpedersen Oct 11, 2025
cde9466
Add workflow to generate APK with manual trigger
bjlpedersen Oct 11, 2025
a2f0cee
Add push trigger for testing APK workflow
bjlpedersen Oct 11, 2025
31fb36b
Fix: Separate packages in Set Up Android SDK step to fix workflow not…
bjlpedersen Oct 11, 2025
0955e3f
Fix: Restore google-services.json from GitHub secret in APK generatio…
bjlpedersen Oct 11, 2025
cc01e19
Fix: Re-run workflow after changin git to decode google-services.json…
bjlpedersen Oct 11, 2025
531a496
Remove temporary push trigger from APK workflow
bjlpedersen Oct 12, 2025
6d8c0f5
feat: enhance booking and profile models and db repositories
NedenSinir Oct 9, 2025
8f44318
refactor: removing unnecessary types
NedenSinir Oct 11, 2025
a92f2f5
refactor: apply formatting
NedenSinir Oct 11, 2025
f64116d
refactor: extracting unrelated files for feature branch
NedenSinir Oct 11, 2025
9d7dbfd
refactor: update user-related fields to improve clarity and consistency
NedenSinir Oct 11, 2025
4bbec05
refactor: update Rating data class and repository
NedenSinir Oct 11, 2025
c398168
refactor: making profiles compatible with new structure
NedenSinir Oct 11, 2025
fec1c87
refactor: renaming some fields for new strcuture
NedenSinir Oct 11, 2025
94628b8
refactor: applying the correct formating
NedenSinir Oct 11, 2025
18129df
refactor: update Booking and Rating tests for new data structure
NedenSinir Oct 11, 2025
fac0a09
refactor: better naming for some fields
NedenSinir Oct 11, 2025
637614c
Merge branch 'main' into Zay1939-feature/add-Tutor-Profil-Page
Zay1939 Oct 13, 2025
756bd83
Merge branch 'main' into nahuelArthur-feature/add-ProfileUI
nahuelArthur Oct 13, 2025
f9f16bc
test(bookings): consolidate & add ViewModel + UI tests to existing te…
Oct 13, 2025
968de2f
test(bookings): add ViewModel duration unit test and Compose UI tests
Oct 13, 2025
c8ab8bf
Add a new test to MyBookingsRobolectricTest.kt to have more line cove…
Oct 13, 2025
eeaa7a7
Merge remote-tracking branch 'origin' into GuillaumeLepin-feature/add…
GuillaumeLepin Oct 13, 2025
7c6cff9
feat(profile): implement local repository and update ViewModel & tests
nahuelArthur Oct 13, 2025
263a2a1
refactor(ui/tutor): Adopt repository pattern for TutorProfile
Zay1939 Oct 13, 2025
9742050
feat(signup): implement UI & fake ProfileRepository
Oct 13, 2025
747f0da
feat : add editProfile the screen (not finished)
nahuelArthur Oct 13, 2025
1c10354
refractor : add setErrorMsg for editProfile
nahuelArthur Oct 13, 2025
591cf44
fix: update MainActivity to prevent test errors
GuillaumeLepin Oct 13, 2025
64900f0
Merge pull request #48 from SkillBridgeee/GuillaumeLepin-feature/add-…
GuillaumeLepin Oct 13, 2025
3841a78
SignUp: add surname and levelOfEducation, move submit/validation to V…
Oct 13, 2025
ada67a4
feat: create ViewModel for managing screen logic
GuillaumeLepin Oct 13, 2025
a868e8e
Merge remote-tracking branch 'origin' into GuillaumeLepin-feature/add…
GuillaumeLepin Oct 13, 2025
4e9dbad
Implement ViewModel and Screen tests:
Oct 13, 2025
2919edb
Implement ViewModel and Screen tests
Oct 13, 2025
bd980f2
fix : fix small mistakes in viewModel
nahuelArthur Oct 13, 2025
b9bd474
Merge branch 'main' into nahuelArthur-feature/add-ProfileUI
bjlpedersen Oct 13, 2025
899837a
Merge pull request #25 from SkillBridgeee/nahuelArthur-feature/add-Pr…
nahuelArthur Oct 13, 2025
bcb65a9
bookings: improve mapping, enforce price format, stabilize tests
Oct 13, 2025
97173ca
bookings: improve mapping, enforce price format, stabilize tests
Oct 13, 2025
6f0586f
Add test tah for naviagtion message
Oct 13, 2025
5236561
add messages to NavRoutes to be able to use test tag
Oct 13, 2025
f274513
Merge branch 'main' into SanemSarioglu-feature/add-my-bookings-page
SanemSarioglu Oct 13, 2025
b086bae
Update tests to get more line coverage
Oct 13, 2025
9bad4e6
Update tests to get more line coverage
Oct 13, 2025
2881cc6
Update tests to get more line coverage
Oct 13, 2025
12a8994
feat(bookings): merge screen+vm, add mapper & uiState, expand tests
Oct 13, 2025
1aee247
Update the tests to get more line coverage and delet the dublicate bt…
Oct 13, 2025
1745ff5
Add test for the lines that were not covered in the ViewModel
Oct 13, 2025
a85b119
Merge branch 'main' into SanemSarioglu-feature/signup-screen
SanemSarioglu Oct 13, 2025
02dd346
feat: enhance booking and profile models and db repositories
NedenSinir Oct 9, 2025
5584c1f
refactor: removing unnecessary types
NedenSinir Oct 11, 2025
a963e7c
refactor: apply formatting
NedenSinir Oct 11, 2025
2bb1ed9
refactor: extracting unrelated files for feature branch
NedenSinir Oct 11, 2025
a1640ab
refactor: update user-related fields to improve clarity and consistency
NedenSinir Oct 11, 2025
ed52da7
refactor: update Rating data class and repository
NedenSinir Oct 11, 2025
8723e06
refactor: making profiles compatible with new structure
NedenSinir Oct 11, 2025
c52ef17
refactor: renaming some fields for new strcuture
NedenSinir Oct 11, 2025
1f2f3d4
refactor: applying the correct formating
NedenSinir Oct 11, 2025
d86b555
Merge remote-tracking branch 'origin' into GuillaumeLepin-feature/add…
GuillaumeLepin Oct 13, 2025
9fb1a92
refactor: update Booking and Rating tests for new data structure
NedenSinir Oct 11, 2025
4671336
fix: update MainActivity to prevent test errors
GuillaumeLepin Oct 13, 2025
3103d4b
refactor: better naming for some fields
NedenSinir Oct 11, 2025
0a15e24
Merge pull request #48 from SkillBridgeee/GuillaumeLepin-feature/add-…
GuillaumeLepin Oct 13, 2025
6b35e42
Merge branch 'main' into nahuelArthur-feature/add_skill_ui
nahuelArthur Oct 14, 2025
899a24e
Merge branch 'main' into nahuelArthur-feature/add-ProfileUI
Zay1939 Oct 14, 2025
d49d466
feat(profile): implement local repository and update ViewModel & tests
nahuelArthur Oct 13, 2025
d90374b
feat : add editProfile the screen (not finished)
nahuelArthur Oct 13, 2025
ea30bb6
refractor : add setErrorMsg for editProfile
nahuelArthur Oct 13, 2025
9115d9c
fix : fix small mistakes in viewModel
nahuelArthur Oct 13, 2025
e50d93f
Merge branch 'main' into nahuelArthur-feature/add-ProfileUI
bjlpedersen Oct 13, 2025
f5f5082
Merge pull request #25 from SkillBridgeee/nahuelArthur-feature/add-Pr…
nahuelArthur Oct 13, 2025
baae7c1
Subject List: add screen + viewmodel, repo rename, provider updates
Zay1939 Oct 13, 2025
275fda0
fix(ui/subject): show Category dropdown by anchoring with .menuAnchor…
Zay1939 Oct 14, 2025
d387de0
fix(ui) : remove the top bar form the TutorProfileScreen scaffold bec…
Zay1939 Oct 14, 2025
4ce3188
Merge branch 'main' into Zay1939-feature/add-Tutor-Profil-Page
Zay1939 Oct 14, 2025
ba2531b
refactor: code formatting (ktfmtFormat)
Zay1939 Oct 14, 2025
1f0344a
refactor(newskill): align ViewModel with Listing repository architectur
nahuelArthur Oct 14, 2025
d7b5946
Change ViewModel and Screen to get a more clean code and get rid of d…
Oct 14, 2025
3abe2be
Change ViewModel and Screen to get a more clean code and get rid of d…
Oct 14, 2025
bbf93ed
fix(ProfileRepo) : Implement missing methods in the local repo
Zay1939 Oct 14, 2025
38818db
test : add tests regarding latest modification
nahuelArthur Oct 14, 2025
dd2d117
Add fake repository test to get more line coverage
Oct 14, 2025
c55554b
Got rid of preview
Oct 14, 2025
1c6fafa
Merge remote-tracking branch 'origin' into GuillaumeLepin-feature/add…
GuillaumeLepin Oct 14, 2025
e50104a
Modify repository tests to have more coverage
Oct 14, 2025
7be83b1
Update SignUpScreenTest, change timeout from 3000 to 300 to pass CI test
Oct 14, 2025
6f99c21
Modify the screen test to pass UI test, waiting time issue
Oct 14, 2025
d8cfe8a
Changed the remarks made by review
Oct 14, 2025
1c00499
Modified according to remarks made by review
Oct 14, 2025
107232f
Use compose rule that launches an Activity to pass the CI test
Oct 14, 2025
fccc18a
Did gradlew format check
Oct 14, 2025
d8bd012
Merge pull request #49 from SkillBridgeee/Zay1939-feature/add-Tutor-P…
GuillaumeLepin Oct 14, 2025
0076737
refactor: implement requested updates from PR review feedback
nahuelArthur Oct 14, 2025
0f51a0e
Merge branch 'main' into nahuelArthur-feature/add_skill_ui
nahuelArthur Oct 14, 2025
f6c92fb
Merge remote-tracking branch 'origin' into GuillaumeLepin-feature/add…
GuillaumeLepin Oct 14, 2025
7399da4
test(signup): wrap setContent in SampleAppTheme + waitForIdle, use me…
Oct 14, 2025
1a1985d
Merge pull request #51 from SkillBridgeee/nahuelArthur-feature/add_sk…
nahuelArthur Oct 14, 2025
3d12c57
remove unnecessary import
Oct 14, 2025
560a486
Merge branch 'main' into Zay1939-feature/add-Subject-List-Page
Zay1939 Oct 14, 2025
77a87c2
Merge branch 'main' into SanemSarioglu-feature/add-my-bookings-page
SanemSarioglu Oct 14, 2025
387c681
Delete the unneccessary sode in NAcGraph which will be implemented later
Oct 14, 2025
3b329b4
feat: update main page and models to support listings and improve tests
GuillaumeLepin Oct 14, 2025
9a25693
Merge branch 'main' into GuillaumeLepin-feature/add-MainPage
GuillaumeLepin Oct 14, 2025
ba65e7c
fix(ui/subject): show Category dropdown by anchoring with .menuAnchor…
Zay1939 Oct 14, 2025
eb89d1e
test(subject-list): add comprehensive unit tests for filtering and ra…
Zay1939 Oct 14, 2025
e2b905c
merge stashed changes into current branch
Zay1939 Oct 14, 2025
23a45ad
merge stashed changes into current branch
Zay1939 Oct 14, 2025
421b3df
refactor: apply formatting
Zay1939 Oct 14, 2025
c5a005c
Remove hardcoded demo from viewmodel and implemented into fake reposi…
Oct 14, 2025
8cd36b0
fix(test) : Remove additional lines only meant for testing
Zay1939 Oct 14, 2025
541cab1
refactor: apply formatting
Zay1939 Oct 14, 2025
77c4ea2
Add test for provider classes
Oct 14, 2025
ef9caec
fix(test) : Comment out testClass unrelated to mine that fail
Zay1939 Oct 14, 2025
8a745f8
refactor: apply formatting
Zay1939 Oct 14, 2025
d053dbc
refactor: implement local data repositories and move the old dataiew
GuillaumeLepin Oct 14, 2025
408899b
fix(test) : Add a missing function implementation in a test class fak…
Zay1939 Oct 14, 2025
91dc133
fix(test) : Add a missing function implementation in a test class fak…
Zay1939 Oct 14, 2025
16fa22d
Delete hard coded local
Oct 14, 2025
c9eca2f
Merge pull request #50 from SkillBridgeee/SanemSarioglu-feature/add-m…
SanemSarioglu Oct 14, 2025
746645f
fix(tests) : Enable scroll for the test in CI
Zay1939 Oct 14, 2025
6670268
Merge branch 'main' into Zay1939-feature/add-Subject-List-Page
Zay1939 Oct 14, 2025
d34a0ba
feat: enhance booking and profile models and db repositories
NedenSinir Oct 9, 2025
5a8f694
refactor: update user-related fields to improve clarity and consistency
NedenSinir Oct 11, 2025
e727ceb
refactor: making profiles compatible with new structure
NedenSinir Oct 11, 2025
15aac02
refactor: renaming some fields for new strcuture
NedenSinir Oct 11, 2025
4ecaea3
refactor: applying the correct formating
NedenSinir Oct 11, 2025
dd0c0a1
refactor: better naming for some fields
NedenSinir Oct 11, 2025
399ef3c
fix(ui/subject): show Category dropdown by anchoring with .menuAnchor…
Zay1939 Oct 14, 2025
c32e16a
merge stashed changes into current branch
Zay1939 Oct 14, 2025
5f26ba0
fix(test) : Comment out testClass unrelated to mine that fail
Zay1939 Oct 14, 2025
20b9464
refactor: apply formatting
Zay1939 Oct 14, 2025
252b9c3
fix(tests) : fix CI race
Zay1939 Oct 14, 2025
e4c73a5
refactor: apply formatting
Zay1939 Oct 14, 2025
d4ca2f2
fix(tests) : Fix scroll issue with tests
Zay1939 Oct 14, 2025
5dbe967
refactor: apply formatting
Zay1939 Oct 14, 2025
a24b844
Modify test rendersTutorList_excludingTopTutors to make it CI stable
Zay1939 Oct 14, 2025
bb5de31
Merge branch 'main' into SanemSarioglu-feature/signup-screen
SanemSarioglu Oct 14, 2025
ae2d79d
Comment out the failing test to see line coverage
Zay1939 Oct 14, 2025
620bca2
Comment out unrelevant class to see actual line coverage
Zay1939 Oct 14, 2025
d405f50
refactor: apply formatting
Zay1939 Oct 14, 2025
7f85492
feat(signup): implement UI & fake ProfileRepository
Oct 13, 2025
a9bb12a
Modify SignUpViewModelTest
Oct 14, 2025
f3069bc
refactor: improve MainPageViewModel and update MainPage logic after P…
GuillaumeLepin Oct 15, 2025
d3af6c8
Merge remote-tracking branch 'origin' into GuillaumeLepin-feature/add…
GuillaumeLepin Oct 15, 2025
ceeb078
chore: adjust code to fit changes after merging main into branch
GuillaumeLepin Oct 15, 2025
456f2b6
Implement newly merged functions to repository to test which made CI …
Oct 15, 2025
18d5812
Resolve conflicts
Oct 15, 2025
4daf9bd
Add new tests for screen and fake repository
Oct 15, 2025
562fde2
feat(signup): implement UI & fake ProfileRepository
Oct 13, 2025
2e19e63
Delete unresolved reference of viewmodel
Oct 15, 2025
19943e1
feat(ui) : Extract the tutor card feature into a component to improve…
Zay1939 Oct 15, 2025
b92c182
fix(tests) : Fix of testTag not wrapping in a container correctly tagged
Zay1939 Oct 15, 2025
a91d66f
Add the put in adress to location in profile and make adress optional…
Oct 15, 2025
a3f06ba
refactor: apply PR feedback to improve data handling and UI state man…
GuillaumeLepin Oct 15, 2025
9d44bfa
docs: address code review remarks and add class-level KDoc
Zay1939 Oct 15, 2025
5bce18b
style: apply ktfmt formatting across the project
GuillaumeLepin Oct 15, 2025
f17fbd3
fix(tests) : Fix scrollable issue in the screen tests
Zay1939 Oct 15, 2025
145efb3
Add the interfaces and repositories for authentication feature(curren…
EBali2003 Oct 15, 2025
725d1e5
refactor: apply formatting
Zay1939 Oct 15, 2025
5a8e987
Fix readMe typo
nahuelArthur Oct 15, 2025
058767e
docs: add KDoc documentation for MainPage and MainPageViewModel
GuillaumeLepin Oct 15, 2025
166d189
Remove unused Firestore repository files
Zay1939 Oct 15, 2025
32acfa6
Create pull_request_template.md for PR guidelines
SanemSarioglu Oct 15, 2025
6433b43
Merge pull request #69 from SkillBridgeee/nahuelArthur-fix/error-in-r…
nahuelArthur Oct 15, 2025
3384f7a
Merge branch 'main' into GuillaumeLepin-feature/add-MainPage
GuillaumeLepin Oct 15, 2025
1c27858
Merge pull request #47 from SkillBridgeee/GuillaumeLepin-feature/add-…
GuillaumeLepin Oct 15, 2025
257989d
Merge branch 'main' into chore/add-pr-template
SanemSarioglu Oct 15, 2025
315018d
change the interfaces and repositories for authentication feature(goo…
EBali2003 Oct 15, 2025
a2904f1
Merge pull request #70 from SkillBridgeee/chore/add-pr-template
EBali2003 Oct 15, 2025
1cc66cb
Merge branch 'main' into EBali2003-feature/add-authentication-function
EBali2003 Oct 15, 2025
aba41ac
fix deprecation issues by adding rules
EBali2003 Oct 15, 2025
a2e02cc
Merge remote-tracking branch 'origin/EBali2003-feature/add-authentica…
EBali2003 Oct 15, 2025
0bd7c53
Feature: Integrate navigation and ViewModel for profile and bookings …
bjlpedersen Oct 15, 2025
0622b34
Merge remote-tracking branch 'origin/main' into bjlpedersen/feature/i…
bjlpedersen Oct 15, 2025
9f0cdf0
fix(viewModel) : Address review comments in SubjectListViewModel and …
Zay1939 Oct 15, 2025
a0e8ab7
refactor: apply formatting
Zay1939 Oct 15, 2025
8f2dc0e
Merge branch 'main' into Zay1939-feature/add-Subject-List-Page
Zay1939 Oct 15, 2025
836efbd
Merge pull request #68 from SkillBridgeee/Zay1939-feature/add-Subject…
Zay1939 Oct 15, 2025
2b0b9ab
add new test for coverage and edit file according to comments
EBali2003 Oct 15, 2025
884764c
feat: Enhance navigation and integrate MainPageViewModel for improved…
bjlpedersen Oct 15, 2025
f44673e
Merge branch 'main' into EBali2003-feature/add-authentication-function
EBali2003 Oct 15, 2025
23569e4
Merge branch 'main' of github.com:SkillBridgeee/SkillBridgeee into EB…
EBali2003 Oct 15, 2025
c77b8f3
add some colors to theme according to the requested changes
EBali2003 Oct 15, 2025
9b75ec9
Merge remote-tracking branch 'origin/EBali2003-feature/add-authentica…
EBali2003 Oct 15, 2025
cd60876
Merge pull request #71 from SkillBridgeee/EBali2003-feature/add-authe…
EBali2003 Oct 15, 2025
10ff7da
Add password requirements and made them visible in the UI, made the s…
Oct 15, 2025
2d8e5e0
Merge branch 'main' into bjlpedersen/feature/integrate-navigation
bjlpedersen Oct 15, 2025
a746284
Merge branch 'main' into SanemSarioglu-feature/signup-screen
SanemSarioglu Oct 15, 2025
64976ab
Modified the test to solve the uncoherence with RatingInfo
Oct 15, 2025
96528ee
Correct formating
Oct 15, 2025
88b6511
Modify according to Profile class so the tests pass
Oct 15, 2025
ec90d79
feat: Refactor login screen and navigation.Integrated the login scree…
bjlpedersen Oct 15, 2025
bbe5616
Correct format
Oct 15, 2025
246ec9e
feat: Integrate Skills screen into navigation and update routing. Add…
bjlpedersen Oct 15, 2025
a2d24fd
modify the signup button so that it is white when the background is b…
Oct 15, 2025
3eac643
feat: Update BottomNavBar tests and integrate navigation for new scre…
bjlpedersen Oct 15, 2025
31865f1
Merge pull request #65 from SkillBridgeee/SanemSarioglu-feature/signu…
SanemSarioglu Oct 15, 2025
5f48143
feat: Clean up code formatting and improve navigation structure. Remo…
bjlpedersen Oct 15, 2025
b126fab
Merge branch 'main' into bjlpedersen/feature/integrate-navigation
bjlpedersen Oct 15, 2025
f2c4b0d
feat: implement Firestore repositories for data types
NedenSinir Oct 15, 2025
83f9bcc
feat: Integrate SignUp navigation and update routing. Added navigatio…
bjlpedersen Oct 15, 2025
2dcbb1e
feat: Integrate Google Sign-In functionality and update navigation. A…
bjlpedersen Oct 15, 2025
4255f67
fix: forgot to run format
bjlpedersen Oct 16, 2025
be93c79
Merge pull request #73 from SkillBridgeee/bjlpedersen/feature/integra…
bjlpedersen Oct 16, 2025
e7c06f8
refactor: change Firestore integration for booking and listing reposi…
NedenSinir Oct 16, 2025
6099b7d
refactor: change Firestore integration for booking and listing reposi…
NedenSinir Oct 16, 2025
22ba907
refactor: update rating and repository for improved rating handling a…
NedenSinir Oct 16, 2025
ec1ec86
test: add end-to-end tests and improve existing tests with test tags
GuillaumeLepin Oct 16, 2025
d86111f
refactor: update profile handling to support nullable fields and impr…
NedenSinir Oct 16, 2025
f17912d
refactor: remove unsuned file
NedenSinir Oct 16, 2025
6b39d9f
Merge remote-tracking branch 'origin' into NedenSinir-feature/db-repo…
GuillaumeLepin Oct 16, 2025
ab99c81
Merge remote-tracking branch 'refs/remotes/origin/NedenSinir-feature/…
GuillaumeLepin Oct 16, 2025
6d08c68
refactor: comment out unused test
NedenSinir Oct 16, 2025
672d759
refactor: comment out unused test
NedenSinir Oct 16, 2025
c4532d4
refactor: comment out unused test
NedenSinir Oct 16, 2025
9e58b86
Merge pull request #72 from SkillBridgeee/NedenSinir-feature/db-repos…
NedenSinir Oct 16, 2025
a1f805c
fix app not working by adding repository providers in main app and te…
EBali2003 Oct 16, 2025
1f7502b
check if CI works because formatting should have worked
EBali2003 Oct 16, 2025
2ed8a77
commit the bugged CredentialAuthHelper.kt
EBali2003 Oct 16, 2025
a7a3734
fix some tests because new changes made them fail.
EBali2003 Oct 16, 2025
f418794
commit the GoogleSignInHelperTest.kt because this time it bugged out
EBali2003 Oct 16, 2025
9e25f21
Merge pull request #74 from SkillBridgeee/EBali2003-hotfix/app-not-op…
bjlpedersen Oct 16, 2025
11897d5
test: add MyPofileTest
nahuelArthur Oct 21, 2025
d425c47
chore: clean up minor warnings
nahuelArthur Oct 21, 2025
9fe25f4
test: add tests for MyProfileViewModel
nahuelArthur Oct 21, 2025
d87e077
fix : fix small mistake in the viewModel
nahuelArthur Oct 21, 2025
1da7044
fix : resovle review comment about confusion on emailMsgError
nahuelArthur Oct 21, 2025
8a7de94
Merge pull request #92 from SkillBridgeee/nahuelArthur-fix/fix-MyProf…
nahuelArthur Oct 21, 2025
e8b966e
add keystore so that anyone can use the firebase functions
EBali2003 Oct 22, 2025
e6420f3
fix: fixed NavGraphTests, MainActivity and BottomNavBarTests next
bjlpedersen Oct 22, 2025
43420c6
Merge pull request #97 from SkillBridgeee/EBali2003-chore/create-keys…
bjlpedersen Oct 22, 2025
1c46d2a
Merge branch 'main' into bjlpedersen-test/fix-navigation-tests
bjlpedersen Oct 22, 2025
3f40660
fix: enhance navigation tests by initializing repositories in test setup
bjlpedersen Oct 22, 2025
9deacdf
fix: remove commented-out code from MainActivityTest
bjlpedersen Oct 22, 2025
98506b0
Merge branch 'main' into GuillaumeLepin-test/end-to-end-tests
GuillaumeLepin Oct 22, 2025
020e7f8
Merge pull request #99 from SkillBridgeee/bjlpedersen-test/fix-naviga…
bjlpedersen Oct 23, 2025
d003e66
Merge remote-tracking branch 'origin' into GuillaumeLepin-test/end-to…
GuillaumeLepin Oct 23, 2025
9a1a050
Merge remote-tracking branch 'refs/remotes/origin/GuillaumeLepin-test…
GuillaumeLepin Oct 23, 2025
0218292
test: update end-to-end tests for improved navigation and reliability
GuillaumeLepin Oct 26, 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)
12 changes: 11 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,16 @@ jobs:
run: |
chmod +x ./gradlew

- 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

# Check formatting
- name: KTFmt Check
run: |
Expand Down Expand Up @@ -112,4 +122,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
69 changes: 69 additions & 0 deletions .github/workflows/generate-apk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
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 (so Gradle can locate SDK)
- name: Configure local.properties
run: |
echo "sdk.dir=$ANDROID_SDK_ROOT" > local.properties

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