LI
liuderchi/fsnd_P4_Conference_Org
Udacity Nanodegree Project 4 - Conference Organization
Udacity Conference Organizer README
An conference organizer app to help you schedule your conferences.
Deployed on Google Cloud Platform using and implemented by Python mostly.
This is a README of Udacity Nanodegree Project 4.
This file is response to project problems.
Environment
- OS: win7 x64
- python 2.7
- Google App Engine: SDK 1.9.32.
Setup Instructions
-
clone this project and replace some values with your own GAE app-id
- 'application' of
app.yaml-> your own GAE app-id - 'WEB_CLIENT_ID' of
settings.py-> your client-id from developer_console.API_manager.Credentials - CLIENT_ID (line 89) of
static/js/app.js-> your client-id from developer_console.API_manager.Credentials
- 'application' of
-
run the app in Google App Engine GUI
-
deploy app
-
test the app in API Explorer
- url:
http://<your-app-id>.appspot.com/_ah/api/explorer - my deployment:
http://http://nd-conf-org.appspot.com/_ah/api/explorer - I've prepared a brief test flow through Task_1 to Task_4, recording in TEST_PLAN.md
- url:
Task 1. Design Choice
- In order to reuse the existing code of conference app Model, I added model
Speakeras child kind ofProfileSpeakerentity is defined with name and websafe key
Sessionis added as a child kind ofConference.- I use KeyProperty for indexing speakers in the session entity by storing speakers entity datastore key.
- time-related properties, use DateProperty, TimeProperty, and IntegerProperty
- Other property uses StringProperty
sessionKeysOnWishlistis a property of user profile kind, where it's a list of sessions.- five models update operation require transactional
- update of conference
- update of speaker
- update of session
- attending to a conference
- add a session to wishlist
Task 3. Additional Queries and Query Problem
- indexes for querying are defined in
index.yaml - Two Additional Queries
- getConferenceSessionsByHighlight()
- supporting user to query session with highlight string
- getConferenceSessionsByLocation()
- supporting user to query session with location string
- getConferenceSessionsByHighlight()
- Query Problem
- Since the feature of datastore indexes, we cannot develop a query with two inequality filters on two different queries
- We need to avoid second inequality filter
# solution 1: using list comprehension
ans = [session for session in sessions.fetch()
if session.typeOfSession != "WORKSHOP"]
# solution 2: using IN-operator
ans = sessions.filter(
Session.typeOfSession.IN(
["NOT_SPECIFIED", "LECTURE", "KEYNOTE", "CODELAB"])```- since typeOfSession is not in fixed format, using solution 1 is better
- this is implemented in
queryProblem()inconference.py
- this is implemented in
On this page
Languages
Python51.6%JavaScript28.0%HTML20.4%
Contributors
Apache License 2.0
Created March 7, 2016
Updated January 28, 2023
