A Flask application that facilitates pair programming in conjuction with the Firepad JavaScript Library
The application is hosted on Heroku. You can view the Psquare application at psquair.herokuapp.com
Here's a screenshot:
These instructions should help you run the code on your machine.
The code is written in Python3.
Clone the repository from GitHub:
$ git clone https://github.com/wcyn/bc-14-pair-programming
Change Directory into the project folder
$ cd bc-14-pair-programming
Install the dependencies from requirements.txt
$ pip install -r requirements.txt
Run the Flask application by typing:
$ python runserver.py
- Flask - A microframework for Python based on Werkzeug, Jinja 2 and good intentions.
- Firebase - A mobile and web application platform with tools and infrastructure designed to help developers build high-quality apps. Firebase is made up of complementary features that developers can mix-and-match to fit their needs.
- Firepad - Open source collaborative code and text editing that runs on JavaScript and Firebase
- Python-JWT - Module for generating and verifying JSON Web Tokens.
- PyCrypto - A collection of both secure hash functions (such as SHA256 and RIPEMD160), and various encryption algorithms (AES, DES, RSA, ElGamal, etc.). Written for Python.
- Pyrebase - A simple python wrapper for the Firebase API.
- Scotch.io Tutorial - Getting Started with Flask, a Python Framework
The application works well with the Cloud9 server. No extra settings of ports or host need to be adjusted.
You may find these helpful when setting up firebase authentication
First, install M2Crypto (A Python crypto and SSL toolkit)
$ sudo apt-get install python-m2crypto
Then run the following code using Python2
# pb_key.py
from M2Crypto import RSA
RSA.load_key('path/to/server_key.pem').save_pub_key('path/to/server_key.pub')
From the command line, run:
ssh-keygen -f my_public_key.pub -i -m PKCS8
This will output a public key in the the ssh-rsa format, which you can then store as an environment variable
- Allow multiple files in one session (that's Tabs)
- Add Folder Structure for file management
- Proper URL Redirects