Code Monkey home page Code Monkey logo

mikaelacaron / basic-car-maintenance Goto Github PK

View Code? Open in Web Editor NEW
204.0 7.0 122.0 12.45 MB

A basic app to track your car's maintenance. Open source for Hacktoberfest 2023. Beginners are welcome!

Home Page: https://mikaelacaron.github.io/Basic-Car-Maintenance/documentation/basic_car_maintenance/

License: Apache License 2.0

Swift 98.48% Shell 0.43% Ruby 1.08%
hacktoberfest hacktoberfest2023 swift swiftui firebase firestore ios ios-app ios-swift ios17

basic-car-maintenance's Introduction

Basic Car Maintenance

Welcome to my open source app! It is ready for contributors for Hacktoberfest! Use this app to gain experience getting started in open source for iOS and macOS development using Swift and SwiftUI.

Getting Started

Static Badge GitHub last commit (branch) GitHub contributors first-timers-only Unit Tests Deploy DocC Documentation

  • Read the Code of Conduct
  • Read the CONTRIBUTING.md guidelines
  • Download Xcode 15 or later
  • Browse the open issues and comment which you would like to work on
    • It is only one person per issue, except where noted.
  • Fork this repo
  • Clone the repo to your machine (do not open Xcode yet)
  • In the same folder that contains the Basic-Car-Maintenance.xcconfig.template, run this command, in Terminal, to create a new Xcode configuration file (which properly sets up the signing information)
cp Basic-Car-Maintenance.xcconfig.template Basic-Car-Maintenance.xcconfig
  • Open Xcode

  • In the Basic-Car-Maintenance.xcconfig file, fill in your DEVELOPMENT_TEAM and PRODUCT_BUNDLE_IDENTIFIER.

    • You can find this by logging into the Apple Developer Portal
    • This works with both free or paid Apple Developer accounts. Do NOT run this app on a real device due to issues with the Sign in With Apple capability.
DEVELOPMENT_TEAM = ABC123
PRODUCT_BUNDLE_IDENTIFIER = com.mycompany.Basic-Car-Maintenance
  • Build the project โœ…

  • Checkout a new branch (from the dev branch) to work on an issue

Contributing

To start contributing, review CONTRIBUTING.md. New contributors are always welcome to support this project.

๐Ÿ‘€ Please be sure to comment on an issue you'd like to work on and Mikaela Caron, the maintainer of this project, will assign it to you! You can only work on ONE issue at a time.

Checkout any issue labeled hacktoberfest to start contributing.

Important

View the GitHub Discussions for the latest information about the repo.

Issue Labels

  • first-timers-only is only for someone who has not contributed to the repo yet! (and is new to open source and iOS development)
  • good-first-issue is an issue that's beginner level

Please choose an appropriate issue for your skill level

Contributors

Made with contrib.rocks.

Star History

Star History Chart

License

This project is licensed under Apache 2.0.

basic-car-maintenance's People

Contributors

93hn avatar aaronthebald avatar abhinaypratap avatar allanmaral avatar am2089 avatar ampsonic avatar angel39706 avatar anupdsouza avatar appfrosch avatar arirays avatar ashwindsilva avatar daljeetseera avatar dogra25130 avatar drag0ndust avatar hanhqvu avatar harryheres avatar ilyapaddubny avatar jakayus avatar johnolwamba avatar josephnoir avatar maartinj avatar mikaelacaron avatar mishapark avatar omarhegazy93 avatar rizwankce avatar rramirez-dev avatar sarathvsasikala avatar sergpryimachuk avatar tratongossink avatar windrunner21 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

basic-car-maintenance's Issues

IMPROVE - iOS 17 @Observable

Describe the feature you want to improve

As the project uses iOS17 as minimum target change all the @published property wrapper to the new Observation Framework

IMPROVE - Remove rules from `disabled_rules` in SwiftLint configuration file

Describe the feature you want to improve

Sometimes it is almost impossible to avoid SwiftLint warnings and therefore we ignore those rules in the project altogether, but that is something we do when we integrate SwiftLint in an existing/legacy project having thousands of items in Compile Sources.

At this moment, we have only 12 items in our Compile Sources. If we start ignoring and putting rules into disabled_rules, eventually we will arrive at a point where we will have tens of thousands of SwiftLint violations.

Right now, the disabled_rules contains:

disabled_rules:
  - colon
  - comma
  - control_statement
  - type_name
  - trailing_whitespace
  - identifier_name
  - empty_parentheses_with_trailing_closure

If I enable all 7 of these rules, there are around 90 violations (which can be easily fixed).

If we look at these 7 rules, the default configuration for all of them are quite awesome practically, except identifier_name. And we have seen in larger projects that identifier_name can be configured as:

identifier_name:
  excluded:
    - id
    - db
    - URL

Describe alternatives you've considered

FEATURE - Medium Widgets, View Maintenance Events

Describe the feature you want the app to have that it currently doesn't

  • Create a medium widget that allows you to view the total number of maintenance events for a specific vehicle
    Be able to configure which vehicle you want to view for this widget

Describe alternatives you've considered

N/A

Additional context

Only make the medium widget (I'll create new issues for adding different widget sizes later

IMPROVE - configs for widget signing

Describe the feature you want to improve

Signing of the newly added Widget target doesn't use the user xcconfig file. This is because the user config applies only to a single target (the app) and not the project as a whole.

A solution, though definitely not the only, is to move to an arrangement where the user-specific information (currently in Basic-Car-Maintenance.xcconfig) is imported into the project-wide xcconfig. This will allow you to apply the same signing information to all targets, which is almost certainly what you want.

Describe alternatives you've considered

FEATURE - Add Localization Comments to the `SettingsView`

Describe the feature you to improve

  • Add localization comments to SettingsView

Describe alternatives you've considered

  • N/A

Additional context

  • Describe what the string is about, a button to do XYZ, a tab item label showing ABC info. The localization comment is a short string to help people localize the strings in the app

FEATURE - Add Bar Button Item to Order Events by Date

Describe the feature you want the app to have that it currently doesn't

  • Add a trailing bar button item to the DashboardView to order the maintenance events by date when tapped
  • The button will sort the events when tapped by:
    • Oldes to newest
    • Newest to oldest
    • "Custom" This is the original choice (the order it's downloaded from Firebase)

Describe alternatives you've considered

  • Another way to implement this is to tap on the trailing button and have a context menu pop up, that will show "Oldest to Newest," "Newest to Oldest," and "Custom" and then depending on which the user selects, it orders the events

Additional context

  • This should only requre ordering the events that are fetched when the app loads, the actual Firebase query shouldn't need to change

GitHub Actions for Running UI Tests

Describe the feature you want the app to have that it currently doesn't

  • Create a CI script in the properly place in the .github directory for running a CI script to run the UI tests
  • Trigger the script to run when there is a PR to dev or main, and it can be run manually
  • I'm not entirely sure if this is possible in GitHub Actions, but if not, I'd prefer to use Fastlane
    • Creating a fastlane lane that would run the UI tests, and could be triggered by a GitHub action
    • If using fastlane, the README and CONTRIBUTING should be updated as needed

Describe alternatives you've considered

  • I don't believe you can test this at all, on the repo because it needs to be approved my @mikaelacaron , you may need to create it in your own project, run it and test it, and then once you know this syntax is right, make a PR and Mikaela can try it on this repo

Additional context

  • Only run the UI tests, #53 covers creating a script for running the unit tests

IMPROVE - move bundle id to xcconfig

Describe the feature you want to improve

As discussed on Mastodon (https://swiftdevs.space/@mikaelacaron/111166260903515249), sounds like it would be useful to extract the app's bundle id out to into an xcconfig. This is pretty straightforward, but since it touches the xcodeproj, may be problematic for other pending PRs.

I'm not 100% sure I understand the mechanism that is causing a particular issue on macOS. So, before doing this, I'd like to get to bottom of that first.

Describe alternatives you've considered

Manual bundle id juggling is always an option! But it would be way nicer to move the source of truth into one, more merge-conflict-resistant location.

FEATURE - Add Link to Privacy Policy

Describe the feature you want the app to have that it currently doesn't

  • Add a new row in the SettingsView right above the version number (but in the same section)
  • Create a row that when tapped, the privacy policy will be opened in the user's default browser

Privacy policy link: https://github.com/mikaelacaron/Basic-Car-Maintenance-Privacy

Describe alternatives you've considered

  • N/A

Additional context

  • Add any other context or screenshots about the feature request here.

FEATURE - Firebase Analytics Screen Name

Describe the feature you want the app to have that it currently doesn't

  • Add this modifier .analyticsScreen(name: "\(Self.self)") to these views in the app
  • You will need to import FirebaseAnalyticsSwift on all these files (put the imports in alphabetical order)
  • Make this the first modifier for the body

Describe alternatives you've considered

  • N/A

Additional context

  • DashboardView
  • AddMaintenanceView
  • EditEventDetailView
  • SettingsView
  • AddVehicleView
  • ContributorsListView
  • AuthenticationView

Add GitHub Actions CI for SwiftLint

Describe the feature you want the app to have that it currently doesn't

  • Since we get lot of PR and some time its easy to break the expected behaviour. To avoid it we can easily add CI (provided by GitHub Actions for free for OSS projects). CI can run tests on each PR and make sure all tests passes before we merge the new change in.

Describe alternatives you've considered

  • Alternatives would be adding via Circle CI or Bitraise but its needs extra steps and logins. Since GitHub Actions are free even for Mac OS machines its should be fine.

Additional context

  • There are lots of possibilities on this one. We can run Unit tests, UI test and even linting with swift lint and add the errors directly into the Github PR UI.

I have made the same config file and did a test run on my repo. Please take a look and if it aligns with your needs - I can raise a PR to this repo. Thanks for doing this awesome work.

BUG - Delete Maintenance Event Not Removed From Array

Describe the bug

  • The maintenance event does the swipe to delete, but it actually isn't being removed from the events array and

To Reproduce

Steps to reproduce the behavior:

  • Make sure you have an event created
  1. Swipe left to delete the event
  2. See the error, the event animates like it deletes, but then is still there
  • Switching tabs and coming back to Dashboard, you can see that it is deleted from Firebase, but it doesn't remove from the array, staying on the DashboardView

Expected behavior

  • Swipe to delete, the event is removed from the events array and from Firebase

Screenshots

Simulator.Screen.Recording.-.iPhone.15.Pro.-.2023-10-04.at.01.26.57.mp4

Device Info (please complete the following information):

  • Device: iPhone 15 Pro Simulator
  • OS: iOS 17.0
  • App Version v1.0 (1)

Additional Context

IMPROVE - Error Handling When Deleting a Vehicle

Describe the feature you to improve

  • In func deleteVehicle in the SettingsViewModel it doesn't handle if an error is thrown
  • Add a do-catch block to show an error in an alert if an error is thrown

IMPROVE - Build time for docc generation with Github Action

Describe the feature you want to improve

As of now it takes nearly 5 mins or more for building documentation for our project. Majority of the time spends on downloading the SPM packages and linking. If we could cache there files (which are not changed often), we could reduce the time taken for the whole build.

The idea is to cache the SPM packages which are downloaded and reuse the same for continuous builds. Specify a cache key based on Package.resolved file. Official Github Action cache documentation provides a easy way to do it. But it might not work for our situation because we provide custom derived path. However cache can also have custom path.

Describe alternatives you've considered

None

GitHub Actions for Running Code Coverage

Describe the feature you want the app to have that it currently doesn't

Create a CI script in the properly place in the .github directory for running a CI script to run the code coverage workflow
Trigger the script to run when there is a PR to dev or main, and it can be run manually

Describe alternatives you've considered

I have not considered any alternatives, I just read through the issues and found a few covering tests and Github Actions.
I do love to have unit test in a project, but there is never a good way to motivate contributors to add them to the PR.

Additional context

It would be great if there would be a blocker to prevent a PR from merging if the coverage has not increased (might be determine via a threshold)
I already looked into the issue and for most projects you can not use any online tools, but for this one it might be very easy and nice to use codecove.io.

In my previous research I already stumbeld upon this nice post codecov.io-post

GitHub Actions for Running Unit Tests

Describe the feature you want the app to have that it currently doesn't

  • Create a CI script in the properly place in the .github directory for running a CI script to run the unit tests
  • Trigger the script to run when there is a PR to dev or main, and it can be run manually

Describe alternatives you've considered

  • I don't believe you can test this at all, on the repo because it needs to be approved my @mikaelacaron , you may need to create it in your own project, run it and test it, and then once you know this syntax is right, make a PR and Mikaela can try it on this repo

Additional context

  • Only run the unit tests. I'll make a different issue for running UI tests

IMPROVE - Error Handling When Creating an Event

Describe the feature you to improve

  • try? await viewModel.addEvent(event) is called in the DashboardView and doesn't handle if the function throws an error
  • Handle this by wrapping it in a do-catch block, and showing an alert if there's an error
  • Make sure viewModel.events.append(event) is not called when the error occurs

FEATURE - Add description on dashboard screen

Describe the feature you want the app to have that it currently doesn't

  • Currently, the app opens with blank dashboard. I would like to add a description which helps user to take an action.

Describe alternatives you've considered

  • A description with Add maintenance button which directly opens the add sheet.

Additional context

  • Screen must have a description with/without an action button.

IMPROVE - Error Handling Adding a Maintenance Event

Describe the feature you want to improve

  • Add error handling so that a user can not create a new maintenance event with an empty title
  • If the user tries to create a new event with an empty title, an alert should show saying "You can't have an empty title"

Describe alternatives you've considered

  • Possibly a simpler solution is to gray out the "Add" button, until the user has filled in the title, rather than showing an alert

User build setting separation

Describe the feature you want the app to have that it currently doesn't

After cloning, building this project will fail to build because the signing team configuration is set up for the authors. The fix is straightforward, but you have to know how to change your signing set up. It is possible to extract this information out and offer clearer instructions for new developers.

Describe alternatives you've considered

What I like to do is separate out the signing information into a dedicated xcconfig file. This way, you can write more explicit instructions about what is required to get the app building and running. I thought about just making a PR to do this, but hesitated because:

  • It is a fairly invasive change to the .xcodeproj, and merge conflicts are likely
  • It requires a change to the .gitignore file, which was a lot more complex than I was expecting

Additional context

But I'm still up for helping! I use a similar technique in this repo here:

https://github.com/chimeHQ/Chime#building

Document the `Contributor` Struct

Describe the feature you want the app to have that it currently doesn't

  • Document the Contributor struct using the documentation comments so that it will show up in the DocC documentation
    Some info here, but not super descriptive

Describe alternatives you've considered

Additional context

  • Example for one htmlURL
/// The ``URL`` to the user's profile.
let htmlURL: String

FEATURE - Alternative App Icons

Design

  • Design one or two alternative app icons, size them 1024 x 1024, with no corner radius (that happens automatically)

Describe alternatives you've considered

  • Comment if you want to implement the design in code, (and Mikaela will create a new issue), this issue is only for the design
  • I'm also open to a complete redesign, if you want!

Additional context

  • N/A

FEATURE - Small Widget, View Maintenance Events

Describe the feature you want the app to have that it currently doesn't

  • Create a small widget that allows you to view the total number of maintenance events for a specific vehicle
    • Be able to configure which vehicle you want to view for this widget

Describe alternatives you've considered

  • N/A

Additional context

  • Only make the small widget (I'll create new issues for adding different widget sizes later

FEATURE - Large Widgets, View Maintenance Events

Describe the feature you want the app to have that it currently doesn't

  • Create a large widget that allows you to view the total number of maintenance events for a specific vehicle
  • Be able to configure which vehicle you want to view for this widget

Describe alternatives you've considered

N/A

Additional context

  • Only make the large widget, there's different issues for different widget sizes
    • Note because of this, there will most likely be merge conflicts

FEATURE - Edit Vehicle Details

Describe the feature you want the app to have that it currently doesn't

  • Add a trailing swipe action to edit a vehcile's details that's on the SettingsView
  • A user would swipe left, tap on the action, and a sheet will be displayed (similar to the AddVehicleView) to edit the values of the vehicle
  • A leading navigation item will display an Update button which makes a call to Firebase to save the information

Describe alternatives you've considered

  • One alternative is to change the AddVehicleView to update the data, as well as add it (this requires keeping track of the state of the view whether you're in "adding" mode or "updating" mode)
    • The first way is easier, so I'd recommend doing that first

Additional context

  • Don't forget the the trailing action for Cancel that dismisses the view

BUG - Vehicle with empty details getting saved

Describe the bug

  • Vehicle getting added without even filling the details.

To Reproduce

Steps to reproduce the behavior:

  1. Go to 'Settings'
  2. Tap on the button 'Add Vehicle'
  3. Do not fill in any details
  4. Tap on 'Add' Button
  5. Empty details Vehicle will be saved

Expected behavior

  • Vehicle should not get added.

Screenshots

Simulator Screenshot - iPhone 15 Pro - 2023-10-01 at 19 17 52

Device Info (please complete the following information):

  • Device: Phone14 Pro
  • OS: iOS 17.0
  • App Version 1.0(1)

Additional Context

  • N/A

GitHub Action for Creating DocC Documentation

Describe the feature you want the app to have that it currently doesn't

  • Following this tutorial create a script that will automatically build the DocC documentation for this project and publish it to GitHub Pages for the project
  • Try to do this in a public repo from the test code, and link it below in a comment, once @mikaelacaron looks at that, you can probably then create the actual CI script in the right place in the .github directory of this project, but nothing will happen because it has to actually be set up by @mikaelacaron

Describe alternatives you've considered

  • I'm open to other ideas for automatically building the DocC documentation

Additional context

  • Discuss below, but I'm not sure exactly when this should be ran, on a merge of any branch into dev? Because it wouldn't make sense for new docs to be published on a PR (this could change docs for each person's PR, which isn't a source of truth until it's merged)
    • Let me know your ideas before creating a PR

IMPROVE - Error Handling When Deleting an Event

Describe the feature you to improve

  • The deleteEvent function in the DashboardViewModel doesn't handle errors and uses try?
  • Use a do-catch block for this instead, and show an alert with the error's localized description, if something fails

FEATURE - Localization (Multiple assignees allowed!)

Describe the feature you want the app to have that it currently doesn't

  • Using the new Localizable.xcstrings (string catalogs) translate the app into any language that is missing
  • Multiple assignees are allowed for this issue!
  • Comment what language you are translating to, so that two people aren't doing the same language.

Describe alternatives you've considered

  • This will be an ongoing issue that will continually change as the app is developed. If you create a new language and later more keys are added, you are welcome to make a new PR with updates to the translations.

Additional context

  • See this video to learn how the new string catalogs work

Social Preview Image for the Repo

Description

  • Create a social preview image used for the repo (Mikaela will upload this, and it'll be the preview image when the link to the repo is shared
  • This can be an image using Hacktoberfest's official fonts and colors for this year
  • 1280ร—640px

Describe alternatives you've considered

  • N/A

Additional context

  • The image should have the repo name, some fun graphics that are Hacktoberfest themed and convey that this is an open source project for iOS developers of any experience level to contribute to!
  • Somewhere include my name Mikaela Caron as the maintainer

FEATURE - Add Localization Comments to the `AddMaintenanceView`

Describe the feature you to improve

  • Add localization comments to AddMaintenanceView

Describe alternatives you've considered

  • N/A

Additional context

  • Describe what the string is about, a button to do XYZ, a tab item label showing ABC info. The localization comment is a short string to help people localize the strings in the app

BUG - Event without any Title are able to be added

Describe the bug

  • Events without any title and notes are able to be added.

To Reproduce

Steps to reproduce the behavior:

  1. Open App.
  2. On Dashboard View, Tap on '+' button located in Top - Right corner.
  3. Click "Add" on appeared sheet without filling any details.
  4. Event without any title and notes will get added.

Expected behavior

  • "Add" button should be disabled until there is no title.

Screenshots

Simulator Screenshot - iPhone 15 Pro - 2023-10-03 at 01 24 37

Device Info (please complete the following information):

  • Device: iPhone 14 Pro
  • OS: iOS 17
  • App Version: 1.0 (1)

Additional Context

*N/A

FEATURE - Use `NavigationSplitView` rather than `TabView` for iPad

Describe the feature you want the app to have that it currently doesn't

  • Using a NavigationSplitView would look better on iPad rather than a TabView
  • Make this change at the BasicCarMaintenanceApp level depending on the OS

Describe alternatives you've considered

  • Comment any other alternatives you think would look good as well (comment if you're going to do something other than NavigationSplitView)

Additional context

  • N/A

IMPROVE - Error Handling When Creating a Vehicle

Describe the feature you to improve

  • In func addVehicle in the SettingsViewModel it doesn't handle if there's an error from Firebase
  • Add a do-catch block to show an error in an alert if an error is thrown

Setup the Firebase Local Emulator

Details

  • Following this tutorial, set up the project to use the Firebase local emulator when developing and use real Firebase for production
  • Update the README.md and CONTRIBUTING.md with instructions about how to use the Firebase local emulator, if needed (if you're not sure what to say for set up, comment in the PR and Mikaela can update it)

Describe alternatives you've considered

  • N/A

Additional context

  • N/A

IMPROVE - find an easy to use Architecture for the whole app

Describe the feature you want to improve

It would be nice if the whole app uses one Architecture
Architectures that come to mind and might be easy enough for beginners:

  • MVC (Model-View-Controller)
  • MVVM (Model-View-Viewmodel)
  • TCA (The Composable Architecture)
  • ....

Describe alternatives you've considered

This might not be the easiest Task, but could improve future development and Testing!!!!

FEATURE - View GitHub Contributors

Describe the feature you want the app to have that it currently doesn't

  • Create a new section in the SettingsView called "Contributions" to view the list of contributors to the app, using the GitHub API (no login required)
  • See how it was implemented here, in one of my archived repos

Describe alternatives you've considered

  • N/A

Additional context

  • Load the usernames and avatars

FEATURE - Add Localization Comments to the `DashboardView`

Describe the feature you to improve

  • Add localization comments to DashboardView

Describe alternatives you've considered

  • N/A

Additional context

  • Describe what the string is about, a button to do XYZ, a tab item label showing ABC info. The localization comment is a short string to help people localize the strings in the app

IMPROVE - Alphabetical Imports

Describe the feature you want to improve

  • Go through all of the Swift files and put all the imports in alphabetical order

Describe alternatives you've considered

  • N/A

FEATURE - Delete a Vehicle

Describe the feature you want the app to have that it currently doesn't

  • Vehicle Deletion Feature

Describe alternatives you've considered

  • Currently, we cannot delete a vehicle once created. There should be a swipe to delete the vehicle feature in Settings View.

Additional context

*N/A

IMPROVE - Test Contributor Model

Describe the feature you want to improve

I want to add some Unit Test for models and other parts of the app where it is useful

Interactive Tutorial for Getting Started

Describe the feature you want the app to have that it currently doesn't

Describe alternatives you've considered

  • N/A

Additional context

  • This issue is only about the "getting started" what a contributor would look at if they were getting started to build the project for the first time

FEATURE - Onboarding UI

Creating a 2-3 page onboarding experience for the user.

  • These screens would present the highlighted features for users to capture before entering the app.
  • They would have text and visuals to ensure the user was informed of what to expect and to bring excitement before entering the app.

Alternatives

  • Other alternatives would include coach marks after sign-up/login, which could hinder the User's Experience.
  • No onboarding/coach marks, but it would increase the likelihood of not using the app.

Additional context

  • It Would be beneficial to create in Figma and integrate it into VS Code for a seamless integration
  • Figma now has developer options where I can export near to-ready/ready code.

FEATURE - Edit Maintenance Event Details

Describe the feature you want the app to have that it currently doesn't

  • Add a trailing swipe action to edit a maintenance event that's on the DashboardView
  • A user would swipe left, tap on the action, and a sheet will be displayed (similar to the AddMaintenanceView) to edit the values of the event
  • A leading navigation item will display an Update button which makes a call to Firebase to save the information

Describe alternatives you've considered

  • One alternative is to change the AddMaintenanceView to update the data, as well as add it (this requires keeping track of the state of the view whether you're in "adding" mode or "updating" mode)
    • This is harder, so I'd recommend the way described above first

Additional context

  • Don't forget the the trailing action for Cancel that dismisses the view

BUG - App crash when you delete just created maintenance

Describe the bug

  • App crash when you delete the maintenance immediately after adding/creating new maintenance.

To Reproduce

Steps to reproduce the behavior:

  1. Add new maintenance from dashboard.
  2. Immediately delete the maintenance you just created.
  3. App crash

Expected behavior

  • App should not crash at this point. The maintenance event should get deleted.

Screenshots

Screenshot 2023-10-02 at 2 29 52โ€ฏAM

Device Info (please complete the following information):

  • Device: iPhone 15 Pro Max
  • OS: iOS 17.0
  • App Version 1.0

Additional Context

  • N/A

FEATURE - Adding Localization Support to Basic-Car-Maintenance Project

Describe the feature you want the app to have that it currently doesn't

As the project gains popularity, it's crucial to make it accessible to a wider audience by adding support for multiple languages. This enhancement will allow users from different linguistic backgrounds to use the Basic-Car-Maintenance project effectively.

Describe alternatives you've considered

  • A clear and concise description of any alternative solutions or features you've considered.

Additional context

Proposed Changes:

  • Implement localization support for the user interface.
  • Create language files for each supported language.
  • Utilize a robust localization library or framework to manage translations.
  • Update documentation to guide contributors on adding translations.

Benefits:

  • Makes the project more inclusive and accessible to a global audience.
  • Encourages contributions from developers fluent in different languages.
  • Improves user experience for non-English speakers.

FEATURE - User Flow Diagram

Describe the feature you want the app to have that it currently doesn't

A feature list and user flow diagram to understand the app working.

Describe alternatives you've considered

It can be a simple flow diagram,, which describes what's the app all about for newcomers.

FEATURE - Home Screen Quick Action

Describe the feature you want the app to have that it currently doesn't

Describe alternatives you've considered

  • N/A

Additional context

  • Possibly work on how you can make this code testable and easy to use later on App Intents and Siri Shortcuts

FEATURE - User Bugs / Feature Requests from `SettingsView`

Describe the feature you want the app to have that it currently doesn't

  • Create a new row under the GitHub Repo row in the 1st section of SettingsView called "Request a New Feature" that links the user to create a new feature in the GitHub repo
    • Choose any SF symbol that fits for this "request a new feature" row
    • Link to here:https://github.com/mikaelacaron/Basic-Car-Maintenance/issues/new?assignees=&labels=feature+request&projects=&template=feature-request.md&title=FEATURE+-
  • Create a new for row for "Report a Bug"
    • Use the ladybug SF symbol
    • Link here: https://github.com/mikaelacaron/Basic-Car-Maintenance/issues/new?assignees=&labels=bug&projects=&template=bug-report.md&title=BUG+-

Describe alternatives you've considered

  • Yes this requires someone to have a GitHub account to actually find this useful, but that's fine for now

Additional context

  • Add any other context or screenshots about the feature request here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.