App to keep a list of common bought products at grocery store
Groceries is an app designed to helping you finding best prices for your daily/weekly/monthly shopping list at different stores and supermarkets. Made with Django and Bulma.
Current version is v0.0.1
✔ Done | 👷♂️ Work in Progress | ❔ Planned | ❌ Not planned*
Something not planned, doesn't mean it won't or couldn't be implemented in the future.
Status | Features |
---|---|
✔ Ready | Basic database search functions |
✔ Ready | Allow self-hosting for personal usage |
❔ Planned | Multi-language support (English/Spanish) |
❔ Planned | Full-text search engine |
❔ Planned | Allow user registration |
❔ Planned | Allow user submitions |
❔ Planned | Container support (Docker/Podman) |
❌ Not planned | Support federation between servers |
First of all, you need to grab the project and install dependecies using one of the following methods. You will also need yarn
for JavaScript packages.
Groceries is using SQLite3 as default database but I'm planning to move to PostgreSQL in order to allow full-text search during next releases.
By default, this project uses Poetry to manage dependencies.
git clone [email protected]:JuanjoSalvador/groceries-app.git && cd groceries-app
poetry install
yarn install --modules-folder ./groceries/staticfiles/node_modules
This project uses Poetry by default, but you can run it using a classic virtual environment management tool and pip.
git clone [email protected]:JuanjoSalvador/groceries-app.git && cd groceries-app
python -m virtualenv env
source env/bin/activate
pip install --user -r requirements.txt
yarn install --modules-folder ./groceries/staticfiles/node_modules
First of all, you need to collect all static files.
python manage.py collectstatic
After this step, you can just run migrations and initialize database. You will need an email at the moment of initialize database since it will also create a superuser for you. You can enter whatever email you want, since is made for local development it doesn't need to exists, but make sure you remember it! It also will prompt you for a password.
Database initialization will add some sample data. Sample data can be found at /data/sample-data.ods
, feel free to modify it as you want.
python manage.py migrate
python manage.py initdb [email]
Once database is ready, you can run the app and make sure everything is OK.
python manage.py runserver
Since it still not ready, I'm planning to add Docker/Podman support for this project in the future.