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
- Student: Bismita Guha
- Mentors: Abha Wadjikar, Siddharth Venu & Monal Shadi
- Admin: Maybelline Burgos
Backend | Django, Django REST Framework |
Frontend | ReactJS, Redux |
Database | PostgreSQL |
API docs & Testing | Postman-Newman |
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.
- Personal Wiki - Bismita Guha-GSoC'20
- Intro Blog - Intro to GSoC’20 with AnitaB.org Open Source
- Week 1 - API testing using Postman and Newman
- Week 2 - JWT Authentication using Django REST Framework
- Week 3 - Email confirmation process using Django and Sendgrid
- Week 4 - Form validations in ReactJS
- Week 5 - Working with multiple serializers
- Week 6 - Redux state management for different request methods
- Week 7 - More into Redux…
- Week 8 - Experimenting with Django
- Week 9 - Why prefer Server-Side Rendering?
- Week 10 - Uploading files to AWS using ReactJS
- Week 11 - Why contribute to Open Source?
- Week 12 - Winding up GSoC’20
#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 |
#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 |
-
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.
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. |
- 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.
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.