Solution Overview

A brief overview of our envisioned solution, requirements acquisition process, and high level requirements.

Envisioned Solution

Our envisioned solution is a secure web based platform that effectively manages Software Engineering Research recruiting efforts.


GeekSurvey is a public web application where users can create an account and create, manage, or participate in research studies. Accounts on the platform support both a researcher and participant view, allowing users to both conduct and participate in research studies. Study objects on the platform support linking to external survey platforms, such as Google Forms, where users can complete surveys and register that they have taken them. User profiles on the platform can integrate with GitHub to provide researchers a mean for skill and qualification verification. The platform also supports administrator accounts that can edit all user profiles and study objects on the platform. Finally, GeekSurvey integrates with PayPal to handle payment processing. This allows users to add funding to studies and be compensated for their participation.


GeekSurvey is currently a dynamic and modern site with a Bootstrap 5 frontend and a Django backend. As of May 2022, we are currently hosting a live development version of the project on an Oracle Cloud virual private server.


This shows GeekSurvey's current architecture

Given that GeekSurvey is a Django web application, we utilize the Model-View-Template architecture. As can be seen above, every action in GeekSurvey is initiated by an HTTP request from the user. This HTTP request goes through the GeekSurvey Django web application, where it is then passed as an argument to the associated view function in the views.py file. Depending on the type of HTTP request, the view function may read from or write to the database. Then, the view renders the appropriate template. Django utilizes a library called Jinja2, which allows us to dynamically load a page with information from the database. Once this template is rendered, it is returned to the user as a regular HTTP response. For a detailed walk through of GeekSurvey, please refer to the Prototype Review section of our most recent presentation.


Requirements Acquisition

First and foremost, the project proposal document has been a great starting point for determining which features are required for this project. Outside of the project proposal, we have gathered requirements through regular communication with our clients. We typically email our clients once a week with updates on our progress. It's through these emails where we receive clarification on any questions or concerns we may have, as well as quality feedback on any work the team is doing. Additionally, we also meet with our clients virtually on a bi-weekly basis, where we review GeekSurvey's progress and discuss any technical or design questions that may be left after our email communication.

High Level Requirements

Researchers

  • Create account
  • Create studies
  • Manage/monitor studies
  • Specify criteria for participants to meet
  • Send invitations to valid participants

Participants

  • Create account
  • Link GitHub profile
  • Enroll in active studies
  • Notifications for study opportunities
  • Manage funds