life-calendar, you can view your lifetime at a glance - seeing it anywhere from days to decades. These timeframes are represented by 'life boxes', which you can color-code, annotate, and edit with fancily or with Markdown to plan your goals or remember your achievements.
The goal of
life-calendar is, and always has been, to serve as a means to help people grow more productive and utilize their time better. Our time here is limited, and we should make the most of it. This calendar acts as a life planner, journal, and accountability app all in one.
Web App Overview
The best way to see what the web app can do is to go directly to the site but here's a visual overview for those who want to stay on GitHub.
Essentially, these are the three pages that you'll be visiting the most often.
The Life Calendar
This is where the real magic happens. You get an automatically generated list of paginated boxes which you can edit (images, tables, etc. all supported). You can likewise color-code buttons and add their meanings to a legend.
The Statistics Page
You can look in awe at beautiful statistics provided to you about your usage of the app, such as words inputted or a life progress bar.
The Goals Page
This is the place to set customizable goals for yourself. Title, subtitle, and text are supported, as well as due dates + times and a colored outline.
- View your life in days, weeks, months, years, and decades
- Color-code life boxes to demonstrate specific events in your life
- Use Markdown or Fancy Mode to write down what and remember what happened or you want to accomplish
- Set and track colored, detailed goals for yourself
- Download or print your own life calendar
- View insightful statistics about your life
...and a lot more.
You can click the image below to be directed to a YouTube video tutorial of the application, explaining core features and app usage.
If you are more of a reader, there is already a very detailed tutorial on the official site which you are more than welcome to check out. It creating an account, basic and advanced features of Life Calendar, and all the other hidden goodies that haven't been mentioned here.
The website itself should be intuitive, but it's always helpful to have a tutorial around to reference. You can access individual parts of the site tutorial using the Table of Contents below.
- Getting Started
- Other Pages
- Closing Notes
It's super easy to get this app up and running on your local machine. While we recommend the site if you plan on using this long-term, it is beneficial to see how the app works locally, especially if you plan on forking or contributing.
Make sure that you have Python>=3.4 installed, as well as PostgreSQL (handy guide here).
First off, go ahead and either clone or fork the repo. You can easily clone it with the below command:
$ git clone https://github.com/Destaq/life-calendar.git
Now, we need to create out development environment. You can either do everything with
bash and our handy
setup.sh file, or do it manually for the explanations and a better understanding.
Automatic Method: Shell Command
If you'd like us to handle all the pesky requirements installations and database creation, simply navigate to the folder where
life-calendar was installed.
Alright now that we've got that out of the way you can run the following in your terminal (make sure you're in the
source part is very important! If it doesn't work, you can try
After a couple minutes you should have all dependencies installed and the database created. You can then simply run
python3 app.py to start the development server.
Note: you may receive red text when
psycopg2. This is expected for Mac/Linux users, and another requirement,
psycopg2-binary, takes care of this for you.
Manual Method: Multiple Commands
If you'd like to install and setup everything manually, it's outlined below.
First we need to install all the requirements. There's quite a lot, so be prepared to wait for a minute or two!
$ cd life-calendar $ python3 -m pip install -r requirements.txt
Nearly there! We just need to set some environment variables and get our PostgreSQL database running. We can create a PostgreSQL database with
createdb life_calendar (you can name this whatever you want, as long as you haven't used it before).
Now onto the environment variables - we are going to need to set four. The below commands work for Linux and Mac. If you're a Windows user, refer to this guide to setting environment variables.
export APP_CONFIG_KEY="super-secret" export DATABASE_URL="postgresql://localhost/life_calendar"
We also need to export the keys for SendGrid emailing. You can set these to whatever you want; the program won't run without them but unless you're working on the contact page or forgot password page you should be fine.
export JWT_EMAIL_ENCODE_KEY="super-random" export SENDGRID_API_KEY="not-important"
You can verify that these are set with
echo $APP_CONFIG_KEY and
echo $DATABASE_URL, if they don't show up you can just try setting them again.
Of course, if you didn't name your database
life_calendar, you're going to have to change the database URL.
Finally, make sure to comment out line 73 of
init.py (the Talisman wrapper)! Talisman forces serving over HTTPS, but since localhost is insecure, this will cause an error! You'll need to disable it for the app to run properly in localhost, otherwise you'll get an
So now it's time to run the application. All will work as it does on the official website except for sending emails and getting password verification, as those are managed by the Heroku host, not the code.
rm -r migrations $ python3 manage.py db init $ python3 manage.py db migrate $ python3 manage.py db upgrade $ python3 app.py
It will now be running on your localhost. You can go ahead and head over to port 5000 in your browser.
An easy way to contribute is to fork the project, add some beautiful code, and then open a pull request. You'll be credited on the contributions page with your name and GitHub profile link (and will get the warm fuzzy feeling of building a better free product for users).
Life Calendar is free (cue background sounds of happiness). Problem is, server hosting, the PostgreSQL database, and domain name aren't. We live on donations, and you can help out by sponsoring the project here on GitHub or through PayPal.
If you head over to the top you press the heart button to sponsor the project or simply donate below through PayPal.
Want to contribute but not sure where to start? Interested to see what the project's direction is? Search no further.
Once a task has been completed, it is removed from the below task list.
- Multiple language support | @medium
- Build API for users to interact with | @medium @much-work
- Email reminders for goals (and site pop-up reminders) | @easy @under-consideration
- Add ability to set Markdown/Fancy Mode preference in settings | @low @maybe-not
- Goals duedate integration with calendar page | @low
- Brainstorm alternative solution to
localStoragedumping | @low @much-work @future
Below are issues that have been reported by users, but were not previously discovered in testing. They are being given high priority and worked on.
- Edge Browser completely unsupported.
- Color-coding boxes does not work on Firefox 81.