Skip to content

Instantly share code, notes, and snippets.

@bismitaguha
Last active August 30, 2020 03:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bismitaguha/822970b9dc5a417cf4c41a30fcca86c1 to your computer and use it in GitHub Desktop.
Save bismitaguha/822970b9dc5a417cf4c41a30fcca86c1 to your computer and use it in GitHub Desktop.

Bismita Guha - GSoC'20

About the Project

Open Source Programs (OSP) is an original project which I proposed to AnitaB.org Open Source during GSoC'20. The purpose of this project was to simplify the management work of the mentors and organizations. The goal is to make reviewing and notifying simpler, systematic and manageable. This will help in easy processing and hosting of applications and forms. The following features were to be covered during GSoC as a part of the MVP:

  • Building a Minimal Viable Product (MVP) as the first version of the application.
  • Digitalize student progress tracking
  • Automated updating of Progress Sheets along with the feature of manual editing
  • Complete APIs with CRUD views
  • Add Frontend to support APIs
  • Add relevant documentation and tests for the same.
  • Detailed Timeline and deliverables

Repositories Contributed to

Documentation

Team

Tech Stack

Backend Django, Django REST Framework
Frontend ReactJS, Redux
Database PostgreSQL
API docs & Testing Postman-Newman

Blogs & Wiki

During the GSoC period, I penned down my experiences through Medium Blogs. They contain summary of my work in the project, and also some extra information.

All Contributions during GSoC

Important Contributions

Frontend Repo

#PR Feature Integrated
#18 Project Setup using create-react-app
#27 User Registration
#28 User Login
#35 Filling and editing of User Information
#39 Creating, editing and deletion of forms and form fields
#42 Uploading files to AWS S3 bucket using ReactJS
#48 Filling and editing of form responses
#54 Feature for viewing and searching in form submissions
#51 Viewing and refreshing of Zulip Stats

Backend Repo

#PR Feature Integrated
#6 Project Setup with Django
#19 Registration API
#22 Login API and send email feature
#28 CRUD operations for form and field APIs
#31 Creating and editing of form responses
#36 Feature to search submissions list and viewing of user profile
#37 Feature to view and update Zulip Stats

Work left to do

  • Github integration to retrieve stats of a user - Currently Zulip Stats of a specific user can be viewed by admins and the logged-in user. Similarly, Viewing of GitHub Stats simplifies the processing of the application for the Admins.

  • Deployment of the application - The application has to be deployed to AWS, but there are currently problems with the permissions. Also, the application needs to be renamed because, over the development process, it has been made more flexible than was originally planned. So once finalized, the application will be deployed.

Future Scope of application

Idea Description
cross-platform app Create an app functional on devices with different operating systems. You may use Flutter or React-Native
tags an option to create tags on forms and be able to search by tags
Notifications notify the user on getting accepted, rejected or waitlisted
Approval of Admins feature to add approval whenever anyone signs-up as an admin, because we cannot allow admin access across the app to everyone
Email on Acceptance Whenever the acceptance status of a student gets updated they receive an email, mentioning the change.

Challenges Faced

  • Email send feature - faced challenges integrating with the application, especially due to understanding the documentation and purpose of variables.
  • Uploading to AWS - Had no knowledge of setting up AWS buckets or keys. So watched tutorials on setup and faced problems on integrating with ReactJS. There was no documentation on integration with ReactJS, so it took time finding solutions to the errors arising and finishing this PR.
  • Errors in React state updates - Faced a bug while handling states in one PR, which took around 1 week to get solved but were usually basic code changes.
  • Github API - Github APIs have limits and that is creating problems currently in the project while testing my code.
  • Code quality - Before the start of the GSoC period I wasn’t aware much about JS coding guidelines, so that would cause delays on the PRs.
  • Time management - During the last phase, my college internship season and classes were ongoing, which became a problem as I had to switch between working and multitask at times.

Takeaways

Overall, GSoC'20 has been a wonderful experience for me. I learned specifically about the importance of Documentation and maintaining consistent code quality. I became proficient in handling errors, debugging, and completing with minimum delay. Also, this was my first experience at writing frontend code and working with Redux. As a person I would say, handling multiple branches on my local, Google Sheets & Docs and working with a varied number of sources has made me more organized. I would say Open Source provides a wonderful learning platform for aspiring developers. I would continue to participate in more such programs after this wonderful experience.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment