CS50 Web Programming with Python and JavaScript
Summary
From the course authors:
This course picks up where CS50x leaves off, diving more deeply into the design and implementation of web apps with Python, JavaScript, and SQL using frameworks like Django, React, and Bootstrap. Topics include database design, scalability, security, and user experience. Through hands-on projects, students learn to write and use APIs, create interactive UIs, and leverage cloud services like GitHub and Heroku. By semester’s end, students emerge with knowledge and experience in principles, languages, and tools that empower them to design and deploy applications on the Internet.
Table of Contents
Setup
- Install
Usage
- Quickstart
# dependencies asdf install python 3.10.9 asdf install poetry latest # env poetry install poetry shell # setup admin python manage.py createsuperuser # deploy static files python manage.py collectstatic
- k9s
- Minikube
# install brew install minikube # set cluster driver permanently minikube config set driver docker # options minikube start --memory=2048 --cpus=2 -p minikube # profile list minikube profile list
Troubleshooting
no such table: auctions_listing
python - "no such table" exception - Stack Overflowfind . -path "*/migrations/*.py" -not -name "__init__.py" -delete find . -path "*/migrations/*.pyc" -delete rm db.sqlite3 python manage.py makemigrations python manage.py migrate python manage.py migrate --run-syncdb
Submissions
- See CS50W Projects for details
# create branch from spec (e.g., project 0: search) git checkout -b web50/projects/2020/x/search # add remote origin git remote add origin https://github.com/me50/USERNAME.git # move all relevant files to tld mv index.html image.html advanced.html styles.css ../../.. # commit files git commit . # commit files and skip pre-commit git commit -m "search mvp" -m "Other than .dotfiles, just the project 0 website content" --no-verify # push to me50 repo git push -u origin https://github.com/me50/USERNAME.git
TODO
Switch out DevSpace default image indevspace.yaml
Refactor advanced.html to match Google Advanced Search- Go over sanic as ad hoc stand-in for stdlib http server