Systers Portal – Meetup Application

This is a summary of my work on the Meetup application for Systers Portal, which I undertook as part of GSoC 2016.

Background

This project was a continuation of a last year’s GSoC project to enable Systers to organize meetups in different parts of the world, much like Meetup Everywhere. The following work had been completed when I started the project:

  • Databases for Meetups, Meetup Locations and RSVP were created.
  • Views, forms and templates for the following existed:
    • Meetup location about page
    • List of meetup locations
    • Meetup details page
    • Meetup location members page
    • Forms for adding, editing and deleting a meetup
    • Pages to view a list of upcoming and past meetups

Implementation

The features that I implemented include the following:

  • Sponsors: This was added as an additional RichTextField to the MeetupLocation model.
  • Manage Members: Organizers are given the ability to add and remove members and organizers from a meetup location.
  • Manage Meetup Location: Forms for adding, editing and deleting meetup locations were added. These permissions are only given to organizers of a meetup location.
  • Join Requests: The ‘Join Meetup Location’ button was made functional. Organizers can view all join requests, and approve or reject them.
  • RSVP: Members can RSVP for a meetup. They can view the number and list of members going to a meetup in the meetup’s details page.
  • Discussion Area: A comments section was added to meetup’s details page. Any Systers member can comment on a meetup.
  • Support Requests: A model was added for Support Requests. This allows members to volunteer for a meetup. Organizers can view the details of the support requests and discuss them with the volunteer through the comments section of the support request. They can also approve or reject the support requests.
  • Permissions: Member and organizer permissions were specified and implemented.
    • Member permissions include:
      • add_meetup_rsvp
      • add_supportrequest
      • change_supportrequest
      • delete_supportrequest
    • Organizer permissions include:
      • add_meetup
      • change_meetup
      • delete_meetup
      • add_meetuplocation
      • change_meetuplocation
      • delete_meetuplocation
      • add_meetup_location_member
      • delete_meetup_location_member
      • add_meetup_location_organizer
      • delete_meetup_location_organizer
      • approve_meetup_location_joinrequest
      • reject_meetup_location_joinrequest
      • approve_meetup_comment
      • reject_meetup_comment
      • approve_support_request
      • reject_support_request
      • add_support_request_comment
      • change_support_request_comment
      • delete_support_request_comment
      • approve_support_request_comment
      • reject_support_request_comment
  • Notifications: E-mail notifications were implemented using pinax-notifications.
    • These were added for the following actions:
      • new_join_request
      • joined_meetup_location
      • made_organizer
      • new_meetup
      • new_support_request
      • support_request_approved

Apart from these, smaller bugs were also fixed and the tests for this application were updated.

Future Work

There is scope for extending this application further. Some of the features that could be added or enhanced are:

  • Discussion Area for meetups can have an option for organizers to moderate comments.
  • There can be an option to ‘Leave Meetup Location’ for meetup location members instead of ‘Join Meetup Location’.
  • Option to arrange support requests according to the description or volunteer.

Code

The following were the pull requests created:

The following is the link to the diff of the changes I made during the course of this project:

https://docs.google.com/document/d/16NIUbnbpZKYRPB648q2gelbT3YpxGYZjYChPvfjMTu0/edit?usp=sharing

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s