This project was a HackCU VI hackathon project, and is no longer active or maintained.
Do you need an API? Are you tired of AWS and its complicated UI? API design tools can be confusing for beginners, so we set out to create the most simple backend deployment tool on the market - !Backend(pronounced not backend)
!Backend takes a URL to a public GitHub repository, and gives you a link to run the functions as API requests.
The service is built using Angular front-end web framework and Python Flask back-end framework. !Backend runs in the following steps:
- Ask for URL input for GitHub public repository
- Send URL to a Python web server
- Backend server converts the
main.py
from the GitHub repo to a Python Flask application - Web server returns API URL that can now call the functions of
main.py
The result is an API that looks like this: http://notbacken.tec/r/<unique_uuid>/<your_python_function>/<comma,seperated,args>
When a request is sent, if uses the UUID generated from step 4 to access the correct flask server, and runs the method with the parameters specified
Overall we where not very experienced with web development and javascript, so some simple tasks like updating a field from the result of an API call to take a long time. Additionally, we initially wanted to deploy each API to a docker container, or run them all together, and had a difficult time deciding on a design that would enable us to do that (specifically most of these tools only allow one instance bound to a specificity).
- Created an incredibly simple way to deploy Python APIs
- Created an advanced backend with multiple stages and parts
- API generation depends on many factors - such as return types in the Python functions and structure of program
- Security has to be handled very carefully whenever arbitrary code is being run on a server. Right now, security is not handled that way.
Run npm install
for dependencies and ng serve
to start the website.
Run export FLASK_APP=service.py;flask run --host 127.0.0.1 --port 5000
to start the Flask web server.