A minimalistic general list organizer which allows you to create your own unique list name and items, as many as you like for your different needs. These lists can be organized into one place when you create an account. Your list(s) can then be shared with everyone with a unique URL.
A slew of list apps today provide features that users do not need. A simple user interface that enables you to take down your items and tasks straightaway is sometimes all that you might need. Too many features just clutter things up. And SimpleList is built with that in mind.
-
Public (non-authenticated user)
- Create lists of different types (e.g. work, family, personal, groceries, etc)
- Create items on lists
- Update public items
- Delete public items
-
Private (authenticated user)
- Create lists of different types (e.g. work, family, personal, groceries, etc)
- Create items on lists
- Update public and private items
- Delete public and private items
- Delete private lists
- Access all lists created by the user
- Share lists with other authenticated users to edit with the owner's lists
- Django - The web framework used
- Django Rest Framework - Building APIs for AJAX requests for real time updates of creating items
- jQuery - Calling AJAX requests with DRF and some DOM manipulation
Note: PostgreSQL is optional if you like to use the default SQLite3 by Django instead. However, for larger applications, PostgreSQL is highly recommended.
- Install dependencies on your local machine:
git clone https://github.com/sebbycake/superlists.git
pip install -r requirements.txt
- Create database and give the new user access to administer the database:
open psql
(PostgreSQL terminal-based front-end)
postgres=# CREATE DATABASE <your_database_name>;
postgres=# CREATE USER <your_username> WITH PASSWORD '<your_password>';
postgres=# GRANT ALL PRIVILEGES ON DATABASE <your_database_name> TO <your_username>;
postgres=# \q
- Update database configuration settings to the above Postgre settings at
settings.py
:
# PostgreSQL database configuration
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': <your_database_name>,
'USER': <your_username>,
'PASSWORD': <your_password>,
'HOST': 'localhost',
}
}
- Run database migration files:
python manage.py makemigrations
python manage.py migrate
- Create a superuser to access admin site:
python manage.py createsuperuser
Run the code with Django development server:
python manage.py runserver
Important files for deployment on Heroku:
- Procfile
- gunicorn and django-heroku packages
- Configured STATIC_ROOT settings
- Update SECRET_KEY and DEBUG values to environment variables
You can refer to my step-by-step guide on Heroku deployment here.
For more information, please refer to Heroku documentation.
This project is licensed under the BSD License.