Skip to content

Commit 97534dc

Browse files
committed
2 parents 3da335b + 5ac1c6a commit 97534dc

1 file changed

Lines changed: 12 additions & 7 deletions

File tree

README.md

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
# PythonBuddy 🖊️ 🐍
1+
# <a href="http://pythonbuddy.com">PythonBuddy</a> 🖊️ 🐍
22
[![Travis branch](https://img.shields.io/travis/rust-lang/rust/master.svg)](https://travis-ci.org/ethanchewy/OnlinePythonLinterSyntaxChecker)
33
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](http://paypal.me/Ethan302)
44
<br>
55
Online Python 3.6 Programming with Live Pylint Syntax Checking!
66
<br>
77
<i>
8-
Demo is in Python 2.7. A Full Python sandboxing implementation for the Python 3.6 version is a WIP.
8+
GIF below is in Python 2.7. <b>Demo: http://pythonbuddy.com </b>
99
</i>
1010
<br>
1111
![](gifs/pybuddy.gif)
@@ -82,8 +82,7 @@ This is still in alpha stage so there might be some bugs. If you want to impleme
8282

8383
1. Edit app.py to change any pylint options (like showing/hiding hints warnings)
8484
2. Security
85-
1. To create a much more secure Python Environment, consider using RestrictedPython: https://github.com/ethanchewy/OnlinePythonLinterSyntaxChecker/tree/restrictedpython
86-
2. For more security but enough flexibility, you could restrict the temp.py python file without read/write permissions via these instuctions: http://stackoverflow.com/questions/186202/what-is-the-best-way-to-open-a-file-for-exclusive-access-in-python
85+
1. To create a much more secure Python Environment, consider using my Docker + Node.js implementation: https://github.com/ethanchewy/PythonBuddy#secure-sandboxed-version-using-docker
8786
3. For versions that used Python 2 or to see older versions, check: https://github.com/ethanchewy/PythonBuddy/releases
8887

8988
### Unit Tests
@@ -98,7 +97,9 @@ This is still in alpha stage so there might be some bugs. If you want to impleme
9897

9998
### FAQ:
10099
Why did you make this? <br>
101-
I made this so that MOOCs like edX or codecademy could easily embed and use this on their courses so students wouldn't have to go through the frustrations of setting up a Python environment and jump right into Python programming with the support of live syntax checking & highlighting.(Programming MOOCs often have a high attrition rate due to the difficulties of setting up an environment). Also, professors and teachers could easily set up a server and allow students to quickly test out their code with PythonBuddy online.
100+
In 2014, I was a Community TA at MIT edX 6.00.1x course where I helped teach over 1000 students. The year after I started researching under Prof. Eni Mustafaraj. She had a data set from that course and we saw a high attrition rate of students within the first 2 weeks. After digging through the curriculumn and data, I realized that the students left because of difficulties setting up their Python environment and complex error messages that they couldn't solve when running their code (ex: some students had path issues).
101+
<br>
102+
So, I created PythonBuddy to address this issue so that students wouldn't have to go through the frustrations of setting up a Python environment and running into seemingly "random" bugs. PythonBuddy allows users to jump right into Python programming with the support of live syntax checking & highlighting. Also, professors and teachers could easily set up a server and allow students to quickly test out their code with PythonBuddy online.
102103

103104
Has anyone created anything like this before? <br>
104105
There has never been a live syntax checker for python online. Similar projects that are not "live" are http://pep8online.com/ and http://antares.sip.ucm.es/cesar/pylint/
@@ -113,10 +114,14 @@ I'm currently working on this over here (for edx specifically): https://github.c
113114
```
114115

115116
I want the code to actually compile and run in a certain way?<br>
116-
If you want to actually execute the python safely look at my Restricted Python branch: https://github.com/ethanchewy/PythonBuddy/tree/restrictedpython. If you want to run the code more quickly, check out the testing branch which uses Python 3 but may have some bugs: https://github.com/ethanchewy/PythonBuddy/tree/testing.
117+
To run PythonBuddy securely, you can check out my implementation of PythonBuddy with Docker and Node.js: https://github.com/ethanchewy/PythonBuddy#secure-sandboxed-version-using-docker. Basically, it dockerizes each user session (similar to creating a virtual machine for each user) and destroys it if it uses too much memory or runs malicious code.
118+
<br>
119+
If you want to actually execute the python in a restricted fashion at my Restricted Python branch: https://github.com/ethanchewy/PythonBuddy/tree/restrictedpython.
117120

118121
How do I run my own server?
119-
https://github.com/ethanchewy/OnlinePythonLinterSyntaxChecker/wiki
122+
Regular: https://github.com/ethanchewy/OnlinePythonLinterSyntaxChecker/wiki
123+
<br>
124+
Sandboxed: https://github.com/ethanchewy/PythonBuddy/wiki/Running-Sandboxed-PythonBuddy
120125

121126
### Press:
122127
Featured on <a href = "https://twitter.com/PythonWeekly/status/839928984389451777">Python Weekly</a>, <a href ="https://twitter.com/cssauthor/status/841178825924976642">CSS Author</a>, and the <a href ="https://twitter.com/TalkPython/status/858344138420477953">Talk Python Podcast</a>

0 commit comments

Comments
 (0)