Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Ritwick Raj Final Report For Systers Portal GSoC 2020

GSoC 2020 Final Report for Systers Portal

The team

The Project

  • The mission of the project - “To connect communities together, post and share information within the community.”
  • Organize meetups to increase community bonding and bonding within the Systers Portal
  • Provide the users with variety of resources to learn and grow and to make them easily accessible.
  • Add features which increase user activity within the community and help increase outreach.

Tech Stack

Languages

  • Backend - Python 3.7
  • Front-End - Javascript
  • Tests - Python 3.7

Frameworks

  • Django 3.09
  • Django Apscheduler
  • pyJWT
  • Django Ipware
  • GeoIP2
  • jQuery
  • Bootstrap
  • AJAX
  • Other frameworks like cities_light, imagekit, ckeditor, etc.

Proposed Timeline of Work

Phase 1

  • Improve Communities Search and Views
    • Add Google Maps
    • Enable Location and Zoom
    • Add Search Feature
  • Remove Meetup Location Dependency
    • Remove all permissions and views for locations.
    • Change signals and models as required.
    • Modify tests based on the changes.
  • Revamp Meetup Search
    • Enhanced UI
    • Added Location Detection
  • Improve Dropdown UI

Phase 2

  • Add Meetup History Feature
    • Enable users to add images and resources after meetups are held
  • Suggestions for Meetups
    • Generate suggestions based on meetup descriptions
    • Use TF-IDF to find closest meetups
    • Display similar meetups on the meetup page
  • Subscription for Emails
    • Setup Scheduled Emails for Reminders and Weekly Digests
    • Allow users to enable or disable emails

Phase 3

  • Enable Zoom Meetups for Virtual Meeting
    • Integrate Zoom API for users to create or request virtual meetups
    • Setup Permissions for Admins to view the Start and Join Url for the meeting
  • Add Pinboard and Pins for Resources
    • Enables Users to Pin Posts and Resources for them to check them out
    • Use AJAX requests for implementing the above without reloading
  • Tests for increasing coverage drop

List of Important Pull Requests

Pull Request Feature Added
551 Third Party Authentication Settings for Facebook
555 Location and Search Bar for Community
556 Cards and Search for Community
562 Maps and Tests for Search in Communities
568 Dependency on Meetup location Removed
569 Meetup Search Revamped
572 Dropdown Menu Revamped
593 Meetup History Added
594 Subscription Settings Frontend
599 Scheduler and Jobs Added
625 Tf-idf Compare API Integrated
626 Suggested Meetups Front-end Added
639 Zoom Meeting API Integrated
650 Pinboard Feature Added
661 Tests for Settings Added

Challenges

  • Failing tests
  • Ongoing open source work on the project.
  • Production quality code.
  • Styling and maintaining the consistency.
  • Managing Documentation alongside coding.
  • Daily Scrum Check-ins.
  • Writing Blogs

Future Ideas

  • Launch Portal on the android platform.
    • Can be either android app or PWA.
    • Must be in compliance with the current web version.
  • Personalized Dashboard
    • User Personalized Dashboard showing all user activity.
  • Increase Coverage on Portal
    • More tests can be written on the Portal to increase coverage.
  • Shifting to REST API based backend structure from monolithic.

Takeaways

  • Writing tests for Features
  • Time Management and Punctuality
  • Getting to know about a number of frameworks
  • Learning to write good quality code
  • Documenting work.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment