<commit_before># Running the Application
1. Go to [conferencecentral-1180.appspot.com](https://conferencecentral-1180.appspot.com/).
2. Or, if you want to go to the API explorer, go to [conferencecentral-1180.appspot.com/_ah/api/explorer/](https://conferencecentral-1180.appspot.com/_ah/api/explorer).
3. Or, use Google App Engine Launcher to add this project's directory and then run it/deploy it. If run locally, you can access the local webpage at [localhost:8080](http://localhost:8080).

# Creating Sessions
Sessions have most of the usual fields. It's pretty apparent right here what they are:

```py
class Session(ndb.Model):
    """Session -- stores a session"""
    name = ndb.StringProperty(required=True)
    highlights = ndb.StringProperty()
    speaker = ndb.StringProperty()
    duration = ndb.IntegerProperty()
    typeOfSession = ndb.StringProperty(default='NOT_SPECIFIED')
    date = ndb.DateProperty()
    startTime = ndb.TimeProperty()
```

Sessions are children of Conferences. The trickiest part of implementing Session and Session Forms was getting `typeOfSession` and `startTime` and `date` to work correctly.

Duration is an integer property and is supposed to represent the length of the Session in minutes. So `duration = 120` would mean the Session should take 2 hours. There were no endpoint methods that required duration, but if there were, you could make use of `timedelta` to get estimated end times and such.

typeOfSession should be an enumField, because I felt that there are only so many types of Sessions. They could be either `WORKSHOP`, `LECTURE`,  or `NETWORKING`. There could be more (maybe `PRODUCT_DEMO` or `GOLF`?), but I don't believe there'd be so many more that it should just be its own entity where a user could define as many new SessionTypes as he/she would like. That would be overengineering the solution.

```py
class SessionType(messages.Enum):
    """SessionType -- different kinds of session types"""
    NOT_SPECIFIED = 1
    WORKSHOP = 2
    NETWORKING = 3<commit_msg>Updated readme again<commit_after># Running the Application
1. Go to [conferencecentral-1180.appspot.com](https://conferencecentral-1180.appspot.com/).
2. Or, if you want to go to the API explorer, go to [conferencecentral-1180.appspot.com/_ah/api/explorer/](https://conferencecentral-1180.appspot.com/_ah/api/explorer).

**To actually get it set up locally, follow these 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
(Optional) Mark the configuration files as unchanged as follows: $ git update-index --assume-unchanged app.yaml settings.py static/js/app.js
4. 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.
5. Deploy your application.

# Creating Sessions
Sessions have most of the usual fields. It's pretty apparent right here what they are:

```py
class Session(ndb.Model):
    """Session -- stores a session"""
    name = ndb.StringProperty(required=True)
    highlights = ndb.StringProperty()
    speaker = ndb.StringProperty()
    duration = ndb.IntegerProperty()
    typeOfSession = ndb.StringProperty(default='NOT_SPECIFIED')
    date = ndb.DateProperty()
    startTime = ndb.TimeProperty()
```

Sessions are children of Conferences. The trickiest part of implementing Session and Session Forms was getting `typeOfSession` and `startTime` and `date` to work correctly.

Duration is an integer property and is supposed to represent the length of the Session in minutes. So `duration = 120` would mean the Session should take 2 hours. There were no endpoint methods that required duration, but if there were, you could make use of `timedelta` to get estimated end times and such.

typeOfSession should be an enumField, because I felt that there are only so many types of Sessions. They could be either `WORKSHOP`, `LECTURE`,  or `NETWORKING`. There could be more (maybe `PRODUCT_DEMO` or `GOLF`?), but I don't believe there'd be so many more that it should just be its own entity where a user could define as many new SessionTypes as he/she would like. That would be overengineering the solution.

```py
class SessionType(messages.Enum):
    """SessionType -- different kinds of session types"""
    NOT_SPECIFIED = 1
    WORKSHOP = 2
    NETWORKING = 3
{'fraction_non_alphanumeric': 0.08004246284501061, 'fraction_numerical': 0.014437367303609342, 'mean_word_length': 4.365603644646924, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4163192', 'n_tokens_mistral': 1349, 'n_tokens_neox': 1265, 'n_words': 600}