Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mentorship System GSoC 2018

Mentorship System GSoC 2018

This is the final demonstration of my work during Google Summer of Code 2018 with Systers Open Source organization. I share my work, my learnings, and the overall incredible experience.

Isabel Costa

August 12, 2018
Tweet

More Decks by Isabel Costa

Other Decks in Technology

Transcript

  1. 2 ©2018 AnitaB.org About Me Who am I? • Isabel

    Costa from Portugal Background? • Worked 2 years on Android and I’m a MSc Telecommunications and Informatics Engineering graduate Previous Experience with Open Source? • Almost none before GSoC • 1 PR in November ‘17 HacktoberFest, 1 PR for another org on GSoC and then started in March on Systers Open Source with more than PRs
  2. 3 ©2018 AnitaB.org About the Team Student • Isabel Costa

    → @isabelcosta Mentors • Murad → @murad • Dilushi Piumwardane → @dil • Roopal Jain → @roopal Admin • May → @may • Code Code Code; Follow proposed timeline for the project; Communicate regularly with mentors and the community; Share project progress; ... • Guide on technical issues and doubts; Help me follow best practises; Review Pull Requests; ... • Bridge between the organization and the team; Helped me getting feedback from potential users; ...
  3. 5 ©2018 AnitaB.org Purpose What is this Mentorship System about?

    • Mentorship System for women in tech to mentor and support each other • Target user/audience: Any Women in Tech, in any stage of the career, of any age, and any social/economic background Why did I propose this project? • I was a mentor before in college • I met some women transitioning careers that asked me for or I offered advice Why I think this important? • Help women who might be switching careers into Tech or are already on it • Provide a safe environment for women in tech to mentor each other on career development topics
  4. 6 ©2018 AnitaB.org Features 1º Coding Phase • Login/Register API

    • Edit/Delete/View/List Users Profile API • Assign Users as Admins 2º Coding Phase • Revoke Admin role | Email Verification (initial send and resend API) • Mentorship Relation arc on Backend (send/accept/reject/delete APIs) • Completion of a relation 3º Coding Phase • Test the backend, find bugs and fix them • Implement Tasks feature on backend • Start Android application (User, Mentorship Relation, Tasks (stretch) arc)
  5. 7 ©2018 AnitaB.org Tech Stack Backend • Python, Flask, MySQL,

    SQLAlchemy • Deployed on Amazon Web Services (AWS) Mobile Application • Android, Kotlin • MVVM, LiveData, ViewModel, RxJava, Retrofit, ConstraintLayout, ... Repositories on GitHub • systers/mentorship-backend • systers/mentorship-android
  6. 10 ©2018 AnitaB.org Accomplishments (1) List of Features: • Registration

    API • Login API • Provide Swagger Documentation • Edit Profile API • List All Users API • See my and other Users’ profile API • Assign a User as an Admin API • Delete my User profile
  7. 11 ©2018 AnitaB.org Accomplishments (2) List of Features: • Send

    Mentorship Relation API • Get all Mentorship Relation API • Email Verification API • Accept/Reject/Cancel mentorship relation API • Revoke Admin role to a User API • Delete Mentorship Request API • Cron job to complete a Mentorship Relation
  8. 12 ©2018 AnitaB.org Demo • Go to live server: http://systers-mentorship-dev.eu-central-1.elasticbeanstalk.com/

    • Register 2 new Users • Login the two users • List Users, to see IDs • Check my User profile • Update their profile to enable mentoring and be mentor features
  9. 13 ©2018 AnitaB.org Demo • Send a Mentorship Request 1

    from User 1 to User 2 • Send a Mentorship Request 2 from User 1 to User 2 • Send a Mentorship Request 3 from User 1 to User 2 • User 2 rejects Mentorship Relation 1 • User 1 deletes Mentorship Relation 2 • User 2 accepts Mentorship Relation 3
  10. 16 ©2018 AnitaB.org Android Demo List of completed Features: •

    Register Screen • Login Screen • Members List Screen • Member Profile Screen • Requests List Screen • Request Detail Screen
  11. 17 ©2018 AnitaB.org Future Development Opportunities Soooo many things! Let's

    summarize … • More features … — Instant Messaging in the app — Schedule Meetings between Members — Report Code of Conduct violations — Relations 1 to many — Tutorial Screen — Slack and Social Media authentication — Shared Resources in a Relation — Gamification for a relation’s achievements and milestones • Build this app using a hybrid solution (e.g.: flutter) and embrace Android and iOS • Web version of the app !! • Integrate with Volunteer Management System (VMS)
  12. 19 ©2018 AnitaB.org Research, Outreach and Training • Studied Material

    Design to design a good UI and UX; • Created UI Prototype feedback Google Docs for potential users to ask questions; • Create a Quality Assurance Google Docs to educate members about the backend; • Hosted Ask Me Anything (AMA) sessions for new contributors; • Promoted the project through a blog post about the Mentorship System idea; • Shared frequent updates on #mentorship-system Slack channel to make the community aware of the state of the project.
  13. 20 ©2018 AnitaB.org Documentation Such an important part of Open

    Source ... • Share publicly User Interface (UI) screens and prototype (on issues, wiki, ...) • Initial Google Docs explaining the proposal for Backend and App features • Taking extensive notes on Meeting Minutes • Organize GitHub Wiki to link all public resources for new contributors • Wrote a blog post about the Mentorship System on Medium • Quality Assurance Google Docs to help members of the community test the backend
  14. 22 ©2018 AnitaB.org How can you contribute to this? Soooo

    many ways! Let's summarize … • Test the backend and the Android application for Quality Assurance purposes and report bugs in issues (if any); • Give feedback on the project (UI prototype, suggesting new features), participate in discussions on Slack; • Suggest improvements on Frontend UI/UX; • Helping others understand the project on Slack or other media channels; • Help developing documentation; • Solving available issues or come up with new ones: — Implement new features; — Fix bugs; — Enhance the project; — Develop tests (improve tests quality and code coverage);
  15. 24 ©2018 AnitaB.org Challenges • I was not comfortable at

    all with a Backend development, since I never implemented one of this extension from scratch • Learning a new framework from ZERO • Looking into Clean Architecture and making decision to go with MVVM • Starting GSoC while finishing thesis • Making the project welcoming for open source contributors • Being aware of my mentors’ timezone • User Interface design is not easy • Reflect every week and write blog posts about it • Balancing GSoC work and all the deadlines (Weekly meeting, Scrums, Blog Posts ...)
  16. 25 ©2018 AnitaB.org Take-Aways • Learned a lot about Open

    Source • Because of this experience I’m now an Open Source enthusiast • Being in a open source community helped me express myself in a community as more than a developer, and I loved it! • I really wanted to have the android application done by the end of GSoC but I learned that to building a good product from scratch takes time • To build a great and useful product, this will need several iterations and feedback • I got to train my blogging skills • Getting out of my comfort zone by learning a total new framework and development paradigm. Initially scary but rewarding!
  17. 26 ©2018 AnitaB.org Overall Experience • Mentors were very present

    never felt alone! • Never felt pressure by my team they were always very comprehensive and welcoming • Liked having the possibility to be part of the community and practising open source as a whole and not just coding • Really liked working on a project I was passionate about • Got liberty and flexibility to learn new things both on Backend and Mobile development • The organization was committed to help us grow personally and professionally • Met incredible students, mentors (not just from my project) and other members! • This was such a healthy environment to be in!
  18. Thank you QUESTIONS? @isabelcosta on Systers OS Slack and GitHub

    @isabelcmdcosta on Medium / LinkedIn / Twitter