Conference Central
https://conference-app-fullstack.appspot.com/#
- [Python]
- [JavaScript]
- [HTML]
- [CSS]
-
Update the value of
application
inapp.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. -
Update the values at the top of
settings.py
to reflect the respective client IDs you have registered in the Developer Console. -
Update the value of CLIENT_ID in
static/js/app.js
to the Web client ID -
(Optional) Mark the configuration files as unchanged as follows:
$ git update-index --assume-unchanged app.yaml settings.py static/js/app.js
-
Need to change the Client-ID for Google Sign Up API.
-
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.) -
(Optional) Generate your client library(ies) with the endpoints tool.
-
Deploy your application.
This project is a cloud-based API server to support a web-based and native Android application for conference organization. The API supports the following functionality:
- User authentication (via Google accounts)
- User profiles
- Conference information
- Session information
The API is hosted on Google App Engine as application ID conference-app-fullstack, and can be accessed via the API explorer.
- Google App Engine Python Docs
- Programming Google App Engine (Book)
- Data Modeling for Google App Engine Using Python and ndb (Screencast)
- App Engine Modeling: Parent-Child Models (GitHub)
Task 1: Add Sessions to a Conference
Overview
Sessions can have speakers, start time, duration, type of session (workshop, lecture etc…), location. You will need to define the Session class and the SessionForm class, as well as appropriate Endpoints. You are free to choose how you want to define speakers, eg just as a string or as a full fledged entity. Define Session class and SessionForm
In the SessionForm pass in: Session name highlights speaker duration typeOfSession date start time (in 24 hour notation so it can be ordered). Ideally, create the session as a child of the conference. Define the following Endpoints methods
getConferenceSessions(websafeConferenceKey) -- Given a conference, return all sessions getConferenceSessionsByType(websafeConferenceKey, typeOfSession) Given a conference, return all sessions of a specified type (eg lecture, keynote, workshop) getSessionsBySpeaker(speaker) -- Given a speaker, return all sessions given by this particular speaker, across all conferences createSession(SessionForm, websafeConferenceKey) -- open only to the organizer of the conference Explain your design choices
Explain in a couple of paragraphs your design choices for session and speaker implementation
Conference.py contains corresponding endpoints and methods. I added the following endpoint methods in conferencepy
createSession
: given a conference, creates a session.getConferenceSessions
: given a conference, returns all sessions.getConferenceSessionsByType
: given a conference and session type, returns all applicable sessions.getSessionsBySpeaker
: given a speaker, returns all sessions across all conferences.