A privacy-first open-source personal assistant to help
keep your personal memories and emotions together.
Wassup is NOT a social sharing platform where people tend
to fake their expressions and hide the real emotions.
Checkout the live demo at https://demo.wassuphq.com
- Why use Wassup?
- Features
- Local Development Setup
- Production Setup
- Monetization
- Want to contribute?
- Team
- Thanks
- License
Did you ever want to have someone in your life with whom you can share all your inner feelings? A feeling can be a note of any random thought, memory of an experience or an incidence. Well, you may already have such a person in your life. But not EVERYTHING can be expressed ALWAYS even with our beloved ones, too. Right? You might be thinking that you can write down your feelings in a diary. You may be doing that already. But does that diary lets you express the exact emotions that you feel while noting down your feelings? Does that diary let you know exactly how you have been feeling recently? Does that diary help you recognize what happened exactly that changed your mood?
Wassup can help you do all of these. But listen, Wassup is not just a diary. Wassup lets you express your mood when you note something in it. It helps you determine how your mood has been changing recently or during any period you ask it. With Wassup, you can trace down any memory that triggered a significant mood change. Wassup offers many dumb yet powerful features like these which a real human personal assistant, a beloved person in your life, a note-taking software, a diary or anything else that can hardly help you to achieve the same.
Wassup's only goal is to keep you happy. It shows you why you are not happy!
Wassup is NOT a social sharing platform like Twitter, Facebook, etc. There is no feature such as public profile in Wassup. There are no friends, no followers and nothing like that. Only you can view your memories and emotions. If you want, you can star or unstar your favorite memories. Wassup keeps all of your information private and offers absolutely NO WAY to share anything with anyone.
Wassup is open-source and free software. You can always see all of its code in daylight or night. If you don't trust the hosted version of Wassup then you can always grab its source code and host it yourself on your private server or on your local computer in your backyard. We will not ask you for a penny for hosting it yourself for your personal and non-commercial use. Imagine, it is a real deal.
- Simple, beautiful and responsive user interface
- Easily add notes
- Record sentiment while saving notes
(sentiment is automatically selected by analyzing the contents of
the note based on
afinn-165
algorithm) - Sends you an email reminder if you haven't saved a note for a while (configurable frequency)
- Realtime dashboard
- Dark/light mode
- See recently saved notes on dashboard
- See how your mood has been recently on the dashboard using helpful visual charts
- See all your past notes
- Export notes along with the mood/sentiment data
- Filter notes by a (search) query
- See (filtered) notes in between any date range
- Ready made date range filters to list notes for today, yesterday, this week, this month, etc.
- Easily paginate all the notes
- A detailed mood chart
- Ability to see notes directly on the chart
- See sentiment chart between any date range of your choice
- Edit notes and mood in-place
- Easily star or unstar notes from various places
- Sign in using email and password or social sign in using your Google account
- (If you host Wassup yourself) ability to disable registration
- (If you host Wassup yourself) ability to add users directly (from command-line interface)
- Run in a Docker container
- Import notes along with the mood/sentiment data
- REST APIs to add, update and access your notes programmatically and securely
- Google Chrome extension to add notes and see recent notes
- Multi-language (internationalization) support
- Simple desktop application to easily add notes and see recent notes
- Native mobile application for popular platforms
Wassup backend is built using the Elixir language with the help of the Phoenix web framework.
Please install Elixir on your platform by following instructions at https://elixir-lang.org/install.html.
Once Elixir is installed, you can clone this repository.
Ensure that you have a PostgreSQL server running on your computer.
- Install Elixir dependencies with
mix deps.get
. - Create and migrate your database with
mix ecto.setup
. - Install NPM dependencies with
cd assets && npm install; cd ..
. - Start the Phoenix server with
mix phx.server
or with an interactive shell usingiex -S mix phx.server
.
Now you can visit localhost:4000
from your browser to access the Wassup.
Note that the seed user login credentials
can be found in priv/repo/seeds.exs
file.
If you ever need to reset the seed data, run mix ecto.reset
.
If you need to allow social sign-in using Google to Wassup,
please
follow this guide
about creating an OAuth 2.0 client
in Google API console.
Then, create a .env
file with the following environment
variables appropriately and restart the Phoenix server.
# Variables to allow signing in using Google
export GOOGLE_CLIENT_ID="YOUR_GOOGLE_CLIENT_ID_HERE"
export GOOGLE_CLIENT_SECRET="GOOGLE_CLIENT_SECRET_HERE"
export GOOGLE_REDIRECT_URI="http://localhost:4000/auth/google/callback"
In the dev
environment,
we use Bamboo.LocalAdapter
which stores the emails
in memory
instead of sending them for real.
Check these emails anytime by visiting
localhost:4000/sent_emails
.
- Export all the environment variables in
.env.example
with the appropriate values on the host machine. - Install production environment dependencies using
mix deps.get --only prod
. - Compile the Elixir code using
MIX_ENV=prod mix compile
. - Compile static assets with
npm run deploy --prefix ./assets
and then generate a static assets digest manifest usingmix phx.digest
. - Create and migrate the database using
MIX_ENV=prod mix ecto.setup
andMIX_ENV=prod mix ecto.migrate
. - Start the Phoenix server using
MIX_ENV=prod mix phx.server
or in a detached or background mode usingMIX_ENV=prod elixir --erl "-detached" -S mix phx.server
.
Please follow the instructions at https://hexdocs.pm/phoenix/heroku.html to deploy to Heroku.
- Use the latest pre-built Docker image
wassuphq/wassup:latest
. - Copy
.env.example
in a separate file (for example,.env.docker
) by setting all the containing environment variables with the appropriate values. - Ensure that the database is created and can be accessible inside a Docker container. (For example, if the database is installed and running in the host machine then that database cannot be accessed using
localhost
as the host. Instead specify the host machine's IP. If the host machine is a macOS, you can usehost.docker.internal
as the host in theDATABASE_URL
environment variable's value.) - Run a Docker container from the latest Docker image and execute migrations in it with this command.
$ docker run \
--rm \
--name wassup_migrator \
--env-file .env.docker \
wassuphq/wassup:latest \
bin/wassup_app eval "WassupApp.Release.migrate"
- Now run the app as follows. It can be accessed on the host machine on port
4000
.
$ docker run \
--rm \
--expose 4000:4000 \
--name wassup_app \
--env-file .env.docker \
wassuphq/wassup:latest \
bin/wassup_app start
Wassup offers the mix create_user
task
to add user(s) using command line interface.
The accounts of the users created using this mix task
would be automatically marked as verified,
therefore these users would be able to sign-in
to your hosted Wassup directly.
Run mix help create_user
to understand how to use this task properly.
The create_user
mix task is really helpful
- when you have self-hosted Wassup
- and you have disabled registration using
REGISTRATION_DISABLED=false
environment variable - and you would like to register yourself (and/or your family members).
Soon, we will offer a paid hosted version of Wassup so you don't have to worry about hosting it yourself and maintaining it. The paid version will use the same open-source code hosted in this Github repository. In the future, to sustain this project we might include some advanced and additional features in the paid version Wassup.
People who contribute to this GitHub repository (with a pull request that adds value, that gets merged — not a cosmetic change or a typo fix, for instance) will also have access to the paid version for free.
Note that you can also host and run Wassup yourself. Download the code and run it anywhere. The choice is yours. It will cost you nothing if you host it yourself.
Wow, we really appreciate your help.
First, if you don't mind, please talk about Wassup with your family and friends. So more people are aware of Wassup and start using it.
We welcome contributions of all sorts.
If you find any bug or facing an issue with Wassup, please report it on issue tracker.
Do you want to fix a bug, implement a feature or fix the documentation then feel free to fork this repository and send a pull request. If it looks good to us, we will surely merge your pull request.
The Wassup project is managed and maintained by @vishaltelangre.
- The Wassup logo (both long and short versions), favicon image as well as the branding page cover illustration is made by Priyanka Vishal Telangre.
- Vector icons used in Wassup have been download from https://openmoji.org and http://svgicons.sparkk.fr. We would like to thank the authors for these amazing icons.
- The charts are rendered using the https://www.amcharts.com library. We appreciate the authors of this powerful and beautiful chart library.
Copyright (c) 2019-2020 Vishal Telangre and contributors. All Rights Reserved.
This project is licensed under the AGPL License.