The second evaluations happened from July 27th to July 31st, I Passed!!! This blog post comes as a summary to the work done in the second phase of Google Summer of Code.
This phase i worked on improving the APIs, with projects & authentication enhancements catching the limelight.
Collaborators for Projects were added in
include options while fetching
projects. An attribute
is_starred was also added signifying the starred status for the authorized user.
/api/v1/users/:id/favourites. Now, the User Projects & Featured Projects are available without authentication but still the “Non-Public” projects could only be fetched if authenticated.
One change introduced by @tachyons was the use of warden authentication for API requests which is the underlying auth model for devise.
Related commit: faea536
A total of 223 requests specs/examples were added in view of the CircuitVerse API. Specs for model’s changes were also added.
The API documentation was also updated in view of the changes made during this phase. API Docs to a public URL yet needs to be hosted & will be done at the end of final phase.
Related PR: #1512(Under Review)
This phase marked the completion of MVP for the
mobile_app. The following major changes were made:
CircuitVerse Mobile supports google, facebook & github oauth. The Google OAuth was implemented using google_sign_in & the app was signed using Java KeyStore(
key.jks). Facebook OAuth was implemented using flutter_facebook_login with SDK setup for both Android & iOS. Github OAuth used oauth2_client to interact with Github’s OAuth servers.
Worked on Assignment details screen that also features creating/editing/deleting grade for all the submissions for a particular assignment before the deadline.
Also Worked on User Projects & Favourites views & viewmodel bindings. Handling state in viewmodels is what i learned here, since all of the business logic is handled in the viewmodels passing variables back and forth just for project options like
view_count should never be an option. Also, helps to establish a better testing suite & is independent of the views.
The Profile View now also features the projects you created & the ones you starred under
Some minor UI/UX changes include :
cv_text_field, a generic widget that acts as base for all the text fields used in
In the final phase, i plan to create a complete test suite for the
ui_tests. Will also setup constructive feedback loops with my mentors for any UI/UX changes or some feature requests for the mobile_app. Excited for the final phase..