diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000..d98d252d --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,6 @@ +{ + "name": "PythonBuddy", + "image": "mcr.microsoft.com/vscode/devcontainers/python:3.7", + "features": { + } +} diff --git a/LICENSE.md b/LICENSE.md index 0017cc46..164c8c89 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2019, Ethan Chiu. All rights reserved. +Copyright (c) 2022, Ethan Chiu. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/PythonBuddy/static/js/cm-validator-remote.js b/PythonBuddy/static/js/cm-validator-remote.js index c1c1b680..f491774e 100644 --- a/PythonBuddy/static/js/cm-validator-remote.js +++ b/PythonBuddy/static/js/cm-validator-remote.js @@ -17,7 +17,7 @@ CodeMirror.remoteValidator = function(cm, updateLinting, options) { { var error = error_list[i]; - // Null check to make sure eror message is not empty + // Null check to make sure error message is not empty if (error.line_no != null && error.message != null && error.severity != null) { var start_line = error.line_no; diff --git a/README.md b/README.md index 7f4149d3..8f9365d8 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,28 @@ # PythonBuddy 🖊️ 🐍 -[![Travis branch](https://img.shields.io/travis/rust-lang/rust/master.svg)](https://travis-ci.org/ethanchewy/OnlinePythonLinterSyntaxChecker) -[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](http://paypal.me/Ethan302)
Online Python 3 Programming with Live Pylint Syntax Checking!
+ ![](gifs/demo.gif) ### Usage + +**GitHub Codespaces** + +The quickest way to use PythonBuddy is to launch your own GitHub Codespace! + +1) From the GitHub repo, click the green "Code" button and select "Codespaces". +2) Create a new Codespace or select a previous one you've already created. +3) Navigate to the new tab created for your Codespace. +4) In terminal, run `bash ./setup.sh` +5) Click "Open in Browser" in the bottom right corner after the setup is complete. + * The website may take a while to load or error at first while GitHub sets up the preview environment. In this case, reload the website. +6) Remember to **stop your workspace** after you're done using it. + +**Local Use** + +Due to Codespace's monthly limits, it's recommended to run PythonBuddy locally if used often. + 1) Fetch from repo: ``` git clone https://github.com/ethanchewy/PythonBuddy.git @@ -27,7 +43,7 @@ Online Python 3 Programming with Live Pylint Syntax Checking! ``` python --version ``` - If you don't use Python Python 3.7.6, some Python libraries that PythonBuddy relies on **may not work**. Please refer to this documentation for figuring out how to create a specific version of Python via vitualenv via this StackOverflow [post](https://stackoverflow.com/a/39713544). + If you don't use Python Python 3.7.6, some Python libraries that PythonBuddy relies on **may not work**. Please refer to this documentation for figuring out how to create a specific version of Python via virtualenv via this StackOverflow [post](https://stackoverflow.com/a/39713544). 5) Pipe requirements to venv folder: ``` @@ -112,7 +128,7 @@ pytest --cov-report html --cov=PythonBuddy tests/ ### FAQ: Why did you make this?
-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). +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 curriculum 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).
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. @@ -146,16 +162,3 @@ This was made by Ethan Chiu as a research project under the guidance of Wellesle ### Other: As of October 2020, PythonBuddy.com will no longer be a demo server for this open-source project due to the increasing costs of hosting it for 80,000+ people monthly. Instead, this URL will redirect back to this GitHub repo. - -### How can I support PythonBuddy? -If you enojyed using this open-source project, please consider donating whatever you can to these organizations that address problems I'm passionate about: -- https://www.nami.org/Home -- https://www.cradlestocrayons.org/ -- https://codenation.org/ - -If you don't have the means to donate to the above, consider checking out some of these free action items and information: -- https://blacklivesmatters.carrd.co/#petitions -- https://news.berkeley.edu/story_jump/end-of-affirmative-action-at-uc-hurt-black-latinx-students-study-finds/ -- https://www.vote.org/ -- https://www.bentley.edu/news/confronting-anti-asian-racism-age-coronavirus -- https://en.wikipedia.org/wiki/Bamboo_ceiling diff --git a/requirements.txt b/requirements.txt index a85dac76..47a4ae7a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,13 +1,13 @@ astroid==2.4.2 click==7.1.2 dnspython==1.16.0 -eventlet==0.29.1 +eventlet==0.31.0 Flask==1.1.2 Flask-SocketIO==4.3.1 greenlet==0.4.17 isort==5.6.4 itsdangerous==1.1.0 -Jinja2==2.11.2 +Jinja2==2.11.3 lazy-object-proxy==1.4.3 MarkupSafe==1.1.1 mccabe==0.6.1 diff --git a/setup.sh b/setup.sh new file mode 100644 index 00000000..1a98ed3b --- /dev/null +++ b/setup.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +FLASK_APP=app.py + +pip install -r requirements.txt + +cd PythonBuddy +flask run \ No newline at end of file