<commit_before>This is a web application developed for an assignment in Advanced Software Engineering at Columbia University.
Freesources aims to create database of free items for public use that is contributed to and maintained by users.

**Docker**  
This project is using docker for a consistent development environment.

The image is hosted on dockerhub at https://hub.docker.com/r/craigrhodes/fs_site/ -- the repository is craigrhodes/fs_site.

To pull the image to your computer:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`docker pull craigrhodes/fs_site`  
Note that you will not have to pull the image as it will be pulled for you automatically if it is not cached locally.  

*Docker Options (Read only if you're interested)*  
This is just an explanation of some of the docker commands from the Makefile:  
docker build -t fs-site .:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* `docker build` you build a docker image (by parsing the Dockerfile).  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* `-t fs-site` is saying we want to assign this image a tag-- this is so we can just refer to the image as `fs-site` instead of its container ID.  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* `.` is the current directory (as expected). This tells docker build to look in the current directory for any files referenced in the Dockerfile.

``docker run -p "$(FS_PORT):$(FS_PORT)" -e "FS_PORT=$(FS_PORT)" -v "`pwd`:/usr/src/fs_site" -it craigrhodes/fs_site``:   
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* `docker run` is how you launch a docker container from an image.  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* `-p "$(FS_PORT):$(FS_PORT)"` says that you want to expose the port number from the FS\_PORT variable to the host OS (your actual operating system) as that same port. If you did not do this, the web app would only be available inside the container and nowhere else.  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* `-e "FS\_PORT=$(FS_PORT)"` lets us specify an environment variable for the container. In this case, FS\_PORT environment variable is being set according to the value of the FS\_PORT environment variable on your own OS.  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* ``-v "`pwd`:/usr/src/fs_site"`` allows us to mount a folder on our computer's filesystem inside the container. This makes it so we don't have to rebuild the image to copy the files into the container. Any changes we make inside the working directory (\`pwd\` = the result of Print Working Directory) are immediately reflected in the /usr/src/fs\_site folder in the container.  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* `-it craigrhodes/fs_site` uses the `-i` flag to tell docker to NOT detach stdin from the container (so we can still interact with it once it's launched). The `-t` flag followed by craigrhodes/fs_site specifies the tag of the image to run (craigrhodes/fs_site is the tag of the image we're using).  

*Environment Variables*
The container uses the following environment variables:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FS_HOST -- This is just the hostname/ip address to use.  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FS_PORT -- This is the port for the web app to listen on.  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FS_PASS -- This is the password for the '<PASSWORD>'@'localhost' mysql user.  

FS\_PORT is currently the only one that we can explicitly specify on the host machine through our own environment variable. This is an example of setting FS_PORT on your own OS:
export FS\_PORT=8100

*Docker Scripts*  <commit_msg>Added a single space to README because spaces belong in READMEs<commit_after>This is a web application developed for an assignment in Advanced Software Engineering at Columbia University.
Freesources aims to create database of free items for public use that is contributed to and maintained by users.

**Docker**  
This project is using docker for a consistent development environment. 

The image is hosted on dockerhub at https://hub.docker.com/r/craigrhodes/fs_site/ -- the repository is craigrhodes/fs_site.

To pull the image to your computer:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`docker pull craigrhodes/fs_site`  
Note that you will not have to pull the image as it will be pulled for you automatically if it is not cached locally.  

*Docker Options (Read only if you're interested)*  
This is just an explanation of some of the docker commands from the Makefile:  
docker build -t fs-site .:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* `docker build` you build a docker image (by parsing the Dockerfile).  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* `-t fs-site` is saying we want to assign this image a tag-- this is so we can just refer to the image as `fs-site` instead of its container ID.  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* `.` is the current directory (as expected). This tells docker build to look in the current directory for any files referenced in the Dockerfile.

``docker run -p "$(FS_PORT):$(FS_PORT)" -e "FS_PORT=$(FS_PORT)" -v "`pwd`:/usr/src/fs_site" -it craigrhodes/fs_site``:   
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* `docker run` is how you launch a docker container from an image.  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* `-p "$(FS_PORT):$(FS_PORT)"` says that you want to expose the port number from the FS\_PORT variable to the host OS (your actual operating system) as that same port. If you did not do this, the web app would only be available inside the container and nowhere else.  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* `-e "FS\_PORT=$(FS_PORT)"` lets us specify an environment variable for the container. In this case, FS\_PORT environment variable is being set according to the value of the FS\_PORT environment variable on your own OS.  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* ``-v "`pwd`:/usr/src/fs_site"`` allows us to mount a folder on our computer's filesystem inside the container. This makes it so we don't have to rebuild the image to copy the files into the container. Any changes we make inside the working directory (\`pwd\` = the result of Print Working Directory) are immediately reflected in the /usr/src/fs\_site folder in the container.  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* `-it craigrhodes/fs_site` uses the `-i` flag to tell docker to NOT detach stdin from the container (so we can still interact with it once it's launched). The `-t` flag followed by craigrhodes/fs_site specifies the tag of the image to run (craigrhodes/fs_site is the tag of the image we're using).  

*Environment Variables*
The container uses the following environment variables:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FS_HOST -- This is just the hostname/ip address to use.  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FS_PORT -- This is the port for the web app to listen on.  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FS_PASS -- This is the password for the 'teamace'@'localhost' mysql user.  

FS\_PORT is currently the only one that we can explicitly specify on the host machine through our own environment variable. This is an example of setting FS_PORT on your own OS:
export FS\_PORT=8100

*Docker Scripts*  
{'fraction_non_alphanumeric': 0.10154021677124929, 'fraction_numerical': 0.0011409013120365088, 'mean_word_length': 4.701626016260162, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 2, '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': '1104079', 'n_tokens_mistral': 2043, 'n_tokens_neox': 1945, 'n_words': 952}