It’s been a month since I have been working on my Google Summer of Code project with The Fedora Project. And in this month, I have been working on “Improving the back-end of the Fedora App”. This month has been particularly interesting – with challenges to solve and stuff to learn, it has been a very satisfying experience so far.

Month at a glance

We have successfully completed my first evaluation and here is the list of things that I have worked on in this month:

Week 1 – Porting, Upgrading, and Patching

Week 1 was all about patching and upgrading our SDKs and toolkits to the latest and greatest versions. The process started about a month before but wasn’t completed. We migrated the entire codebase to Ionic 3 and TypeScript. There was a lot of refactoring and code reorganization in this week, and the end result was a clean, structured and documented codebase with all broken facilities restored.

Week 2 – Offline caching

Week 2 was all about bringing offline capabilities to the app. The app now caches the content from Fedora Magazine, FedoCal and Fedora Social. Every time we load the app, we refersh the cache from the API end points in the background. We no longer block the user from interacting with the app.

Week 3 – Testing

We were missing out in the testing front. In this week I worked on improving the unit testing and integration testing components of the app. We are using the popular Karma test runner and the Jasmine test library to implement unit tests. For integration tests, we are using Protractor with Selenium Framework.

Week 4 – More tests, Localization and Package Search

Week 4 was a continuaton of testing work from Week 3. I implemented tests that covered all the services of our app and some UI tests. We also brought a new feature – “package search”. It allows to search for packages right from the app. Along with the package description, it shows the dnf command to install the package, link to the upstream website, and other information.

We also started work on localizing the app. The views now respect the system locale and format the content accordingly. We also have completed the groundwork for furthur localization (and perhaps transaltion) of the app.

Contributions

Here is the list of all pull requests I made in this month:

  1. Disable splash screen autohide (#47)
  2. Sort posts by their dates (#49)
  3. Add type annotations where necessary (#57)
  4. Response caching for Magazine, Social, Calendar and Ask (#61)
  5. Show locale-aware date strings (#64)
  6. Add config for unit testing (#70)
  7. Add integration test setup (#71)
  8. Package search (#72)
  9. Introduce unit tests for providers (#78)
  10. Show posts from official Fedora facebook page and Twitter handle (#79)
  11. Unbreak HTML layout for first evaluation build (#85)

What’s happening

In the coming 4 weeks, we will be working on integrating the UI work done by @littlewornder with the app backend. Some of the planned features are: system calendar integration, more robust offline storage implementation, bookmarking, and integration with FMN to show notifications from Fedora infrastructure apps.

Please send in your feedback at amitosh@fedoraproject.org