From 3e8c838e22d30467830de57813859f37a6e29c81 Mon Sep 17 00:00:00 2001 From: hilmyveradin Date: Wed, 28 Aug 2024 11:35:44 +0700 Subject: [PATCH] feat: modify learning as Readme.md --- README.md | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/README.md b/README.md index e1407e8..62275f1 100644 --- a/README.md +++ b/README.md @@ -34,3 +34,60 @@ A clean bill of health from Swiftlint is required for merging pull requests. ## License OTPKit is licensed under the Apache 2.0 license. See [LICENSE](LICENSE) for more details. + +## Additional Information + +As mentioned in the History section, this repo was originally created as a Google Summer of Code Project. Here is the final report: + +### Google Summer of Code 2024 Final Report + +This report covers the work completed from the start of the GSOC 2024 period in May through the end of the program in August 2024. + +### Project Goals + +OTPKit is an OpenTripPlanner Client Library written in Swift. This project aims to encapsulate the functionalities of OpenTripPlanner. In its initial version, we aimed to integrate OTPKit into the [OneBusAway](https://github.com/OneBusAway/onebusaway-ios) app, facilitating seamless integration with existing maps and features within the OneBusAway app. + +#### What Was Done + +By the end of the GSOC period, several key objectives were accomplished. Most importantly, we successfully integrated OpenTripPlanner using Swift, made the MVP for OpenTripPlanner integration, and managed to make OTPKit usable as a Swift Package. + +#### Current State + +OTPKit is now available on TestFlight via OTPKitDemo. We are waiting for our beta testers to try it out and gather feedback. + +#### What's Left To Do + +After receiving TestFlight feedback, the remaining tasks include integrating OTPKit into the OneBusAway App while making some improvements. + +#### Code Merged Upstream + +Some of the code that has been merged: + +##### Codebase improvement +- https://github.com/OneBusAway/otpkit/pull/18 +- https://github.com/OneBusAway/otpkit/pull/28 + +##### Main Tasks +- https://github.com/OneBusAway/otpkit/pull/19 +- https://github.com/OneBusAway/otpkit/pull/20 +- https://github.com/OneBusAway/otpkit/pull/23 +- https://github.com/OneBusAway/otpkit/pull/31 +- https://github.com/OneBusAway/otpkit/pull/32 +- https://github.com/OneBusAway/otpkit/pull/33 +- https://github.com/OneBusAway/otpkit/pull/35 +- https://github.com/OneBusAway/otpkit/pull/39 +- https://github.com/OneBusAway/otpkit/pull/41 +- https://github.com/OneBusAway/otpkit/pull/46 +- https://github.com/OneBusAway/otpkit/pull/47 +- https://github.com/OneBusAway/otpkit/pull/54 +- https://github.com/OneBusAway/otpkit/pull/55 +- https://github.com/OneBusAway/otpkit/pull/56 + +##### Bug Fixes +- https://github.com/OneBusAway/otpkit/pull/58 +- https://github.com/OneBusAway/otpkit/pull/61 +- https://github.com/OneBusAway/otpkit/pull/62 + +#### Challenges and Learnings + +There were several challenges and learning opportunities while developing OTPKit. Apart from developing this project using SwiftUI from scratch, the most interesting part was the main business logic: integrating SwiftUI MapKit with the OpenTripPlanner server. Additionally, creating OTPKit as a Swift Package to ensure easy library distribution was quite challenging. \ No newline at end of file