A simple, smart dream journal app built with python flask.
Install | Documentation | Contribute
Make sure you have the following prerequisites:
- Python >= 3.6
- pip for your version of python
- git versioning system
Installing the app is easy:
- Clone the repository in the directory you wish:
git clone https://github.com/mrmaxguns/dream-journal.git
- Enter the
dream-journal
directory. (cd dream-journal
) - Install requirements:
pip install -r requirements.txt
- Run the app:
python3 dream-journal/run.py
. On first run, the database will be created. A new tab with the app will open.
- The homepage lists all your recorded dreams with the most recent ones first. Click on a dream title in order to visit the dream log.
- The homepage also lists all the functions you can do such as creating a dream, searching dreams or filtering dreams.
- Go to the homepage and click on
Create a new dream
on the top left side of the screen. - Fill out the form with the following information:
- Title: the title must be unique for every dream and describe its contents.
- Write what happened in your dream: in the next input, write out your dream in detail. This input also supports standard markdown headings, bold, italics, quotes, etc. The markdown will render whenever you visit the dream page.
- Tags: write tags separated by a comma that you can use to sort and categorize your dream.
- Characters: The characters in your dream separated by a comma. These can be yourself and even important objects.
- Locations: The times and places of your dream separated by a comma.
- Type of dream: The dream type describes if your dream is regular, a nightmare, lucid dream, etc.
- The date of your dream: The date you had the dream. It is up to you to determine what date the dream happened on.
- Click the Create Dream button once you are done filling out the information.
- The easiest way to access the dream is through the homepage. Dreams can also be accessed by searching or filtering.
- Once you open the dream page, you will find all information relating to the dream.
- To edit the dream, click the pencil icon. An editor will pop up. Make sure to save the edits by clicking the "Update" button on the bottom of the page.
- To delete a dream, click on the trash icon. It will then ask if you are sure. Click yes to delete the dream forever.
- To go back to the homepage, click the arrow pointing to the left side.
- This app provides a basic keyword search feature that scans the titles and bodies of dreams and provides most relevant results.
- The search can be accessed through the homepage by clicking on the "Search" link next to a magnifying glass.
- Once at the search page, type your query. Results will show up below.
- Filtering dreams is great for filtering tags, characters, locations and types of dreams.
- To open the filter page, go to the homepage and click the "Filter" text next to the funnel.
- Type your filter query: when typing the query, it must be exactly worded but case doesn't matter. Select the type of item you want to filter in the menu below and press "Filter".
This project is licensed under the MIT license, so we value open-source contributions. Please see the LICENSE file for more details.
- Python 3: programming language
- Flask: web framework
- Flask-SQLAlchemy: database
- Markdown2: markdown support
- Waitress: python WSGI server
- Bootstrap: CSS and JS framework
- Black: Python linting
- Isort: Import sorting
Maxim R: mrmaxguns
Contributions are welcome! To learn how to contribute, visit our official contribution page