<commit_before><p align="center">
  <img src="http://i.imgur.com/ZBRXem4.png"/>
</p>

[ScheduleStorm.com](http://schedulestorm.com)

## Schedule Storm Server

Welcome to the back-end that powers Schedule Storm. The back-end is written entirely in Python using Falcon, Beautiful Soup, ldap3, requests, MongoDB, and pymongo.

As you might expect, Schedule Storm is reliant upon class data for numerous universities. Since many universities don't have APIs to query, the vast majority of scraping is done on HTML using Beautiful Soup and Requests. Here you'll be able to find documentation on how to add your University to Schedule Storm.

# How to Add Your University

1. Settings File
2. Creating Your University Python File
3. Terms
4. Subjects<commit_msg>Added "How to Run" section to docs<commit_after><p align="center">
  <img src="http://i.imgur.com/ZBRXem4.png"/>
</p>

[ScheduleStorm.com](http://schedulestorm.com)

## Schedule Storm Server

Welcome to the back-end that powers Schedule Storm. The back-end is written entirely in Python using Falcon, Beautiful Soup, ldap3, requests, MongoDB, and pymongo.

As you might expect, Schedule Storm is reliant upon class data for numerous universities. Since many universities don't have APIs to query, the vast majority of scraping is done on HTML using Beautiful Soup and Requests. Here you'll be able to find documentation on how to add your University to Schedule Storm.

# How to Run

### Python Dependencies
* Requests
* Beautiful Soup 4
* ldap 3
* pymongo
* falcon

#### Also requires MongoDB to be running

Go through `settings.json` and set the `enabled` and `scrape` settings to true for every university you'd like to enable.

The default port is 3000, you can change this at the bottom of index.py

Make sure MongoDB is running and simply run: `python index.py`

You can browse the API by going to `http//localhost:3000/v1/unis` or `http://localhost:3000/v1/unis/{uni}/{term}/all`

If you'd like to use the front-end with your local API, clone it and change the URLs at the top of `ClassList.js` and `Welcome.js`

# How to Add Your University

1. Settings File
2. Creating Your University Python File
3. Terms
4. Subjects
{'fraction_non_alphanumeric': 0.07924874026568941, 'fraction_numerical': 0.01282638570774164, 'mean_word_length': 4.352941176470588, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4055464', 'n_tokens_mistral': 647, 'n_tokens_neox': 601, 'n_words': 308}