- node v11.6.0
- python 3.7.2
- quasar 0.17.19
- vue 3.2.3
dynalite package claims to easily run local DynamoDB, but is not
available for the current Node version.
Untested! (send feedback)
Ubuntu, Debian, Mint
- sudo apt-get install python3 awscli openjdk
RedHat, Centos, Fedora
- sudo rpm i python3 awscli openjdk
- pip3 install pyenv-virtualenv pyenv-virtualenvwrapper
- Install Homebrew
brew install python3 --with-brewed-openssl
brew install awscli cask node pyenv-virtualenv pyenv-virtualenvwrapper
brew cask install dynamodb-localDynamovie: A responsive, single page progressive movie database using Amazon's DynamoDB. It is possible to adapt this with your legacy web application. Uses Quasar Vue.js framework, and Python Django ReST framework.
Todo (send feedback)
- Consider Cygwin or Windows 10 Bash shell
Linux may require
sudo for the following
npm i -g eslint-plugin-vue quasar-cli vue-cli @vue/cli-init
git clone firstname.lastname@example.org:bingalls/dynamovie.git
DynyamoDB Local Setup
bash seedMovie.sh# optional
python3 -m virtualenv venv
pip3 install -r requirements.txt
ln -s venv ..# for your IDE
Mac & Linux users may clean up newlines for git:
find venv -name RECORD|xargs dos2unix -
- Should automatically open browser with http://localhost:8080/
- You can debug ReST API in http://127.0.0.1:8000/movies/
./stop.shbefore closing terminal, to clean up background services
- Edit api/dynamovie/settings.py before running in production! Settings are not secure
This has only been tested on a desktop, with DynamoDB running on localhost. Robust static analysis has been applied, including
However, this code needs unit and integration testing
Road Map & Known Bugs
This code is not fully polished for production. With community support, the following will be improved:
- Quasar is still a beta release
- Fewest Quasar files were changed, to ease upgrades. For example, side menu is unchanged.
- No TLS, nor authentication. Updates & deletes should be restricted for a production release.
- API's host url setting in Index.vue should be moved to a file similar to quasar.conf.js
- API can be richer: versioning, schema, graphql, etc
- Pagination is currently client side, only. Server pagination is commented, untested.
- Studios & Genres come from a limited static list
- Move to TypeScript, just like the next version of Vue & Quasar
- The table is too wide for mobile. Open to suggestions.
- Sanitization disallows '&' in movie titles, for example
- Deleting a row reloads page. Perhaps too heavy, and untested on native mobile