Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rethought Account Service Model with reimagined Account Setup and new Account Overview #7

Merged
merged 103 commits into from
Sep 14, 2023
Merged
Show file tree
Hide file tree
Changes from 95 commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
cc065c7
Try an other target
PSchmiedmayer Jun 14, 2023
70499f8
Try Using the TEST flag
PSchmiedmayer Jun 14, 2023
52d2627
Update Flags
PSchmiedmayer Jun 14, 2023
290368a
Initial mockup for the unified account setup/login view
Supereg Jun 20, 2023
52ff2da
Initial modelling of the updated AccountService representation
Supereg Jun 23, 2023
3a3e55d
Introduce AccountServiceViewStyles
Supereg Jun 23, 2023
9bddccc
First prototype of default implemented KeyPasswordBaseAccountService
Supereg Jun 23, 2023
a8ce2a0
Minor UI fixes
Supereg Jun 23, 2023
d0efc30
Organize files and restructure naming
Supereg Jun 26, 2023
1ffa0d5
Integration of new AccountService. Provide more default views for Key…
Supereg Jun 26, 2023
ca73a48
Add forgotten files
Supereg Jun 26, 2023
3a0ed10
Iteration with initial default password reset view
Supereg Jun 27, 2023
902a987
Some UI components and integrate with upcomming SpeziViews
Supereg Jun 28, 2023
d539392
Introduce some more abstractions, view modifiers, project organization
Supereg Jun 28, 2023
ef71a14
Add all the new files
Supereg Jun 29, 2023
7d148bc
Move to main branch
Supereg Jun 29, 2023
4e6a81e
Provide a nearly feature complete prototype
Supereg Jun 29, 2023
af9636a
Initial draft of the AccountValue system; some localization, Account …
Supereg Jul 2, 2023
4c84149
Rework AccountValue model, implement basic configuration update TestApp
Supereg Jul 3, 2023
fdd6ee7
Organize AccountValue infrastructure
Supereg Jul 10, 2023
4a51331
Localization, documentation and restructuring (again)
Supereg Jul 10, 2023
8a190f8
Rework how the active AccountService is stored
Supereg Jul 10, 2023
b910fd8
Minor adjustments
Supereg Jul 10, 2023
d0e30a8
Fail safe
Supereg Jul 10, 2023
447c2d2
Upgrade SpeziViews module
Supereg Jul 13, 2023
844419e
Fix crashing previews due to pervious refactorings
Supereg Jul 14, 2023
9a3b3af
Minor refactoring in the ValidationRule subsystem
Supereg Jul 14, 2023
fd56ba9
Upgrade to new Component Communication functionality
Supereg Jul 20, 2023
b378dc4
Update AccountValue system to be based on the SharedRepository infras…
Supereg Jul 20, 2023
15231f0
Make Requirements Builder use KeyPaths for simpler API
Supereg Jul 20, 2023
704d5ea
Support completly customizeable data entry views (like signup) with A…
Supereg Jul 22, 2023
549d47f
Instantiate the SharedRepository for AccountServiceConfiguration
Supereg Aug 1, 2023
264a068
Add a lot of documentation; slight refactorings and preparations for …
Supereg Aug 10, 2023
949be2f
Merge branch 'main' into feature/simple-account-view
Supereg Aug 10, 2023
a769417
REUSE
Supereg Aug 10, 2023
23dd6c0
Resolve todos, some minor fixes and documentation updates
Supereg Aug 10, 2023
817a2e3
A bunch more documentation and minor improvements
Supereg Aug 11, 2023
cbf277c
Add initial mockup for the AccountOverview view and rethought the Acc…
Supereg Aug 14, 2023
0648386
DataDisplay infrastructure for a generic AccountOverview
Supereg Aug 14, 2023
8893e5b
Iterate on the AccountOverview. Add discard button confirmation, add …
Supereg Aug 15, 2023
8ec8157
Restructure everything into a ViewModel. Implement logout and removal…
Supereg Aug 15, 2023
eba9af6
Start implementing the NameOverview and the SecurityOverview
Supereg Aug 15, 2023
f0f5130
Introduce AccountValueVisitor and fix a bunch of UI update issues
Supereg Aug 15, 2023
d8cb99e
Fully working AccountOverview (exlcuding the Name and Security subviews)
Supereg Aug 15, 2023
5362586
AccountOverview is now feature complete
Supereg Aug 17, 2023
edb0605
Remove unused code and minor improvements
Supereg Aug 17, 2023
297fc05
AccountService can now declare what type of account values they suppo…
Supereg Aug 18, 2023
00cbb41
Add support to delegate storage of account values to an AccountStorag…
Supereg Aug 21, 2023
57da7c2
Properly distinguish between AccountKeys and AccountValues
Supereg Aug 21, 2023
9af5744
Add a lot of inline documentation and resolve some todos
Supereg Aug 22, 2023
e054ced
Merge branch 'main' into feature/simple-account-view
Supereg Aug 22, 2023
3f3544b
German localization
Supereg Aug 22, 2023
77b94e2
Remove the all containing DataEntryConfiguration
Supereg Aug 22, 2023
59c3931
Split out a lot of functionality of the AccountSetup view
Supereg Aug 22, 2023
607fdf9
Minor UI improvements
Supereg Aug 22, 2023
542b2ae
Fix some minor UI issues
Supereg Aug 22, 2023
4381cfa
Resolve todos and provide inline docs
Supereg Aug 22, 2023
2e5d790
Make identity providers actually work. More docs more resolved todos
Supereg Aug 22, 2023
2d81f24
Resolve all todos except of documentation links and todos in Test target
Supereg Aug 22, 2023
b719448
Updated DocC articles
Supereg Aug 22, 2023
3bcef20
Some more structure for the DocC articles
Supereg Aug 22, 2023
4e4877c
Do all the structuring of the DocC articles and documentation pages
Supereg Aug 23, 2023
10279a9
Optimize how initial values (previoulsy empty values) are handled and…
Supereg Aug 24, 2023
adc1079
Finish all documentation
Supereg Aug 24, 2023
c91f67d
Update docs link
Supereg Aug 24, 2023
26a6930
Make not providing a Date in scenarios where Date Of Birth is optiona…
Supereg Aug 25, 2023
f3e969e
Rework the TestApp and push first working UI tests
Supereg Aug 26, 2023
c82c9c4
First bunch of UI tests
Supereg Aug 26, 2023
fb27c93
Fix tests
Supereg Aug 26, 2023
bcc7858
Fix test configuration
Supereg Aug 26, 2023
8993913
Password reset tests
Supereg Aug 26, 2023
74d54e7
Fix some timing
Supereg Aug 26, 2023
edde606
Complete signup UI tests
Supereg Aug 27, 2023
4f770e7
Slight test adjustments
Supereg Aug 27, 2023
7ba23a9
More test vectors
Supereg Aug 27, 2023
5b1e954
Improve some timing
Supereg Aug 27, 2023
675577f
First set of final UI tests. Fixed some bugs
Supereg Aug 28, 2023
9290d37
Fix compiler warning about Sendable closure
Supereg Aug 28, 2023
3a9e14d
Spelling and Bool default conformance
Supereg Aug 31, 2023
c3e4300
Spacing
Supereg Aug 31, 2023
d139fa6
Fix password entry. Some feedback adressed.
Supereg Sep 2, 2023
7baa04a
Fix compilation
Supereg Sep 2, 2023
ed71a53
Remove custom submit labels
Supereg Sep 2, 2023
5e3557b
Adjust swiftlint file
Supereg Sep 2, 2023
cb152d0
ValidationRule modifiers
Supereg Sep 2, 2023
4b69b6e
Feedback
Supereg Sep 2, 2023
cb714a6
Disable buttons on invalid input. Restructure validation.
Supereg Sep 3, 2023
0348ec8
Simplify ValidationEngine implementation
Supereg Sep 3, 2023
be335c8
Update tests
Supereg Sep 3, 2023
2d937d2
Merge branch 'main' into feature/simple-account-view
Supereg Sep 3, 2023
c6c3542
Hide some of the accessibility labels for images that convey no inter…
Supereg Sep 3, 2023
4b4234c
Some accessibility improvements, test stability and added some more p…
Supereg Sep 3, 2023
a3b6314
Fix swiftlint
Supereg Sep 3, 2023
6fdb0b7
Improve test stability of date picker
Supereg Sep 3, 2023
d956faf
Resolve issues with UI tests due to accessibility labels
Supereg Sep 3, 2023
9a90109
Update labels of NameKey and PasswordChangeSheet
Supereg Sep 14, 2023
a0e9650
Fix layout issues for the PasswordChangeSheet
Supereg Sep 14, 2023
35a59ed
Improve accessibility of Date Picker, fix tests
Supereg Sep 14, 2023
7b3dcc9
Extend the documentation on validation
Supereg Sep 14, 2023
b370638
Update tests due to changes to the accessibility representation
Supereg Sep 14, 2023
c2974e5
Resolve swiftlint
Supereg Sep 14, 2023
7bcd472
Update to latest SpeziViews version
Supereg Sep 14, 2023
e13b1f2
Fix phrasing and optimize line breaks for VCS
Supereg Sep 14, 2023
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
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#
# This source file is part of the Spezi open source project
#
# SPDX-FileCopyrightText: 2022 Stanford University and the project authors (see CONTRIBUTORS.md)
# SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md)
#
# SPDX-License-Identifier: MIT
#
Expand Down
10 changes: 5 additions & 5 deletions .swiftlint.yml
Supereg marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
#
# This source file is part of the Stanford Spezi open-source project
#
# SPDX-FileCopyrightText: 2022 Stanford University and the project authors (see CONTRIBUTORS.md)
# SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md)
#
# SPDX-License-Identifier: MIT
#
#

# The whitelist_rules configuration also includes rules that are enabled by default to provide a good overview of all rules.
only_rules:
Expand Down Expand Up @@ -198,7 +198,7 @@ only_rules:
- nimble_operator
# Prefer not to use extension access modifiers
- no_extension_access_modifier
# Fallthroughs can only be used if the case contains at least one other statement.
# Fallthroughs can only be used if the case contains at least one other statement.
- no_fallthrough_only
# Don’t add a space between the method name and the parentheses.
- no_space_in_method_call
Expand Down Expand Up @@ -429,7 +429,7 @@ nesting: # Types should be nested at most 2 level deep, and functions should be
warning: 2 # warning - default: 1
function_level:
warning: 5 # warning - default: 5

trailing_closure:
only_single_muted_parameter: true

Expand All @@ -444,7 +444,7 @@ type_name:
trailing_whitespace:
ignores_empty_lines: true # default: false
ignores_comments: true # default: false

unused_optional_binding:
ignore_optional_try: true

Expand Down
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#
# This source file is part of the Spezi open source project
#
# SPDX-FileCopyrightText: 2022 Stanford University and the project authors (see CONTRIBUTORS.md)
# SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md)
#
# SPDX-License-Identifier: MIT
#
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
This source file is part of the Spezi open-source project.
SPDX-FileCopyrightText: 2022 Stanford University and the project authors (see CONTRIBUTORS.md)
SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md)
SPDX-License-Identifier: MIT
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2022 Stanford University and the project authors (see CONTRIBUTORS.md)
Copyright (c) 2023 Stanford University and the project authors (see CONTRIBUTORS.md)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

Expand Down
2 changes: 1 addition & 1 deletion LICENSES/MIT.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2022 Stanford University and the project authors (see CONTRIBUTORS.md)
Copyright (c) 2023 Stanford University and the project authors (see CONTRIBUTORS.md)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

Expand Down
15 changes: 10 additions & 5 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
//
// This source file is part of the Spezi open source project
//
// SPDX-FileCopyrightText: 2022 Stanford University and the project authors (see CONTRIBUTORS.md)
// SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md)
//
// SPDX-License-Identifier: MIT
//
Expand All @@ -21,21 +21,26 @@ let package = Package(
.library(name: "SpeziAccount", targets: ["SpeziAccount"])
],
dependencies: [
.package(url: "https://github.com/StanfordSpezi/Spezi", .upToNextMinor(from: "0.7.0")),
.package(url: "https://github.com/StanfordSpezi/SpeziViews", .upToNextMinor(from: "0.4.0"))
.package(url: "https://github.com/StanfordSpezi/Spezi", .upToNextMinor(from: "0.7.2")),
.package(url: "https://github.com/StanfordSpezi/SpeziViews", .upToNextMinor(from: "0.4.0")),
.package(url: "https://github.com/StanfordBDHG/XCTRuntimeAssertions", .upToNextMinor(from: "0.2.5")),
.package(url: "https://github.com/apple/swift-collections.git", .upToNextMajor(from: "1.0.4"))
],
targets: [
.target(
name: "SpeziAccount",
dependencies: [
.product(name: "Spezi", package: "Spezi"),
.product(name: "SpeziViews", package: "SpeziViews")
.product(name: "SpeziViews", package: "SpeziViews"),
.product(name: "XCTRuntimeAssertions", package: "XCTRuntimeAssertions"),
.product(name: "OrderedCollections", package: "swift-collections")
]
),
.testTarget(
name: "SpeziAccountTests",
dependencies: [
.target(name: "SpeziAccount")
.target(name: "SpeziAccount"),
.product(name: "XCTRuntimeAssertions", package: "XCTRuntimeAssertions")
]
)
]
Expand Down
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
This source file is part of the Spezi open-source project.
SPDX-FileCopyrightText: 2022 Stanford University and the project authors (see CONTRIBUTORS.md)
SPDX-FileCopyrightText: 2023 Stanford University and the project authors (see CONTRIBUTORS.md)
SPDX-License-Identifier: MIT
Expand All @@ -16,7 +16,9 @@ SPDX-License-Identifier: MIT
[![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2FStanfordSpezi%2FSpeziAccount%2Fbadge%3Ftype%3Dswift-versions)](https://swiftpackageindex.com/StanfordSpezi/SpeziAccount)
[![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2FStanfordSpezi%2FSpeziAccount%2Fbadge%3Ftype%3Dplatforms)](https://swiftpackageindex.com/StanfordSpezi/SpeziAccount)

The Account module allows users to incorporate account-related functionality for Spezi-based applications.
The Account module provides account-related functionality for Spezi-based applications.
It provides two standardized views with Account Setup, Overview and Edit functionality.
It allows integrating arbitrary account management services using the Account Service abstraction.

For more information, please refer to the [API documentation](https://swiftpackageindex.com/StanfordSpezi/SpeziAccount/documentation).

Expand All @@ -25,7 +27,6 @@ For more information, please refer to the [API documentation](https://swiftpacka

The [Spezi Template Application](https://github.com/StanfordSpezi/SpeziTemplateApplication) provides a great starting point and example using the Spezi Account module.


## Contributing

Contributions to this project are welcome. Please make sure to read the [contribution guidelines](https://github.com/StanfordSpezi/.github/blob/main/CONTRIBUTING.md) and the [contributor covenant code of conduct](https://github.com/StanfordSpezi/.github/blob/main/CODE_OF_CONDUCT.md) first.
Expand Down
Loading