Skip to content

This is a cloud-based API built on the Google App Engine for organizing conferences

License

Notifications You must be signed in to change notification settings

CruzanCaramele/Conference-Organizer

Repository files navigation

Visit the application at this link

Products

Language

APIs

Setup Instructions

  1. Update the value of application in app.yaml to the app ID you have registered in the App Engine admin console and would like to use to host your instance of this sample.
  2. Update the values at the top of settings.py to reflect the respective client IDs you have registered in the Developer Console.
  3. Update the value of CLIENT_ID in static/js/app.js to the Web client ID
  4. (Optional) Mark the configuration files as unchanged as follows: $ git update-index --assume-unchanged app.yaml settings.py static/js/app.js
  5. Run the app with the devserver using dev_appserver.py DIR, and ensure it's running by visiting your local server's address (by default localhost:8080.)
  6. Generate your client library(ies) with the endpoints tool.
  7. Deploy your application.

Session Design Choices

  • In this design, Profile is an ancestor of both Sessions and Conference.
  • A Session is a child of Conference, querying by ancestor is then made possible to get all child elements.
  • Within the Session model, speaker is defined as a string to simplify filtering.
  • typeOfSession was defined in the model as a repeated property.This allows for multiple session types.
  • startTime was defined as a TimeProperty instead of DateProperty to keep entries to 24 hour time and allow for proper filtering.

Sessions to User Wishlist

This is to enable users mark some sessions that they are interested in and retrieve their own current wishlist.

  • addSessionToWishlist :adds the session to the user's list of sessions they are interested in attending
  • getSessionsInWishlist: return a user's wishlist.

Two Additional Queries

returnWishlistType

  • This query returns all sessions on a user's wishlist of a certain type.
  • Useful when a user has been to a few presentations and wanted to attend only workshops for the rest of the day.

returnWishlistSpeaker

  • Given a user's wishlist, this query will return sessions by the same speaker.
  • this allows users to see more sessions from a specific speaker that they have already seen in the past which they like.

Query Problem

  • Keeping in mind that the google app engine forbids 2 inequality filters to be implemented to 2 different properties in a single query, this causes a problem in attempting to query for sessions that are not workshops and before 7pm.
  • I created the problematicQuery method to handle this problem by first querying for sessions that occur before 7pm in ** query_sesh = Session.query(ancestor=conf.key).filter(Session.startTime <= time_is_now**
  • I then used a for loop to iterate over the query_sesh, then check if Workshop is not found .
  • Whenever Workshop is not found, the result is appended to an empty list as in - > list_loader.append(stuff)

About

This is a cloud-based API built on the Google App Engine for organizing conferences

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published