README.md 2.17 KB
Newer Older
Landon DeCoito's avatar
Landon DeCoito committed
1
Currently, the parscript's data is hosted at `masontoday.gmu.io`
2

Landon DeCoito's avatar
Landon DeCoito committed
3 4 5
Please refer to the requirements.txt for information on what packages to install to properly run the program.

We make soup. A lot of it.
6

7 8
Step 1 - xml parsing to create a massive dictionary of objects
Step 2 - figure out how create an implement tag system
9
Step 3 - Create a web page that list out all the events and change what are present and what aren't based on tag system  
10 11 12

# Setup instructions for local development

13 14 15 16 17
1) Have python 2 installed  
2) Create a `virtualenv` if you know what that is  
3) Install the project's dependencies by running `pip install -r requirements.txt`  
4) Install redis-server with `sudo apt install redis-server`  
5) Start the Flask development server by running `./start.sh`  
18 19 20

NOTE: redis-server is easy to exploit, as described in the redis quick start documentation below. Make sure you firewall the port your redis server is running on (if you open your server to outside IPs) to protect the database
NOTE 2: I'm not 100% sure, but I believe you may need to run the redis-server by typing `redis-server` into the terminal. Don't forget that you can use `redis-cli [command] [key]` to check to see if your database changes have been recorded (or to modify your db manually)
21 22

# Documentation for the packages we use
23

24
* Schedule https://pypi.org/project/schedule/
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
* redis-py http://redis-py.readthedocs.io/en/latest/
* redis quick start https://redis.io/topics/quickstart

# MasonToday Documentation

#### Modules
The masontoday functions are currently separated in a few modules:
* `parscript` parses the data from the 25Live XML
* `getconnectedscript` parses the data from the GetConnected XML
* `redisactions` holds the methods for interacting with the redisdb
* `appmethods` holds the methods for interacting with the app
* `__init__` initialises the server and sets up the URL Routing

#### App Structure
The app has three main components:
40 41 42 43 44
1) The Flask server [set up in \_\_init\_\_]  
    * Including the URL Routing (with the use of `@app.route("/")`)  
2) The Redis DB [set up in redisactions]  
    * Routed through localhost port 6379 (this can be changed)  
3) The scheduler [set up in appmethods]