Flaredown makes it easy for people to track symptoms over time, and learn how to control them. Our goal is to analyze the aggregate data from users of this tool to understand the probable effects of treatments and environmental stressors on chronic illness.
Help would be appreciated! Please join us in slack #flaredown, raise a GitHub issue, or email contact@flaredown.
- PostgreSQL 12.8
- MongoDB 4.4.9
- Redis 6.2.3
- Ruby 3.2.3
- Node 12.22.6
The application and all dependencies are dockerized and can be run using docker compose
, so there's no dependencies to install other than Docker.
Alternatively, you can run the app using the make
commands available: make help
If you want to run the application on your own machine see the next sections on dependency installations
If you are running on an M1 mac, run the following command before you start the installation process:
$env /usr/bin/arch -arm64 /bin/zsh ---login
Remove all gems before you proceed
gem uninstall -aIx
You can install the dependencies via asdf-vm declared in the .tool-versions
file, or:
On macOS, you can install libpq
by running brew install libpq && brew link --force libpq && bundle config --local build.pg "--with-ldflags=-L$(brew --prefix libpq)/lib --with-pg-include=$(brew --prefix libpq)/include"
, which is required for bundle install
to succeed.
cd backend
echo "gem: --no-ri --no-rdoc" > ~/.gemrc
bundle config set --local without 'production'
bundle config set --local jobs 5
bundle config set --local retry 10
bundle install
cp env-example .env # You may adjust it however you like
# RVM is going to autoload this on every 'cd' to the directory
bundle exec rake app:setup
gem install foreman
cd frontend
npm install
cd native
npm install
- Populate the necessary environment parameters with
cp backend/env-example backend/.env && cp backend/env-example frontend/.env
- Create a Facebook dev app and paste your own ID into
frontend/.env
file'sFACEBOOK_APP_ID
parameter.- Note: This is not necessary in
backend/.env
but we have not yet cleaned up these two files into the necessary components.
- Note: This is not necessary in
- Seed your database using
make seed
orbundle exec rails app:setup
If you are running the application natively, run the following to start your server. If you're using docker, this should be up and running already.
rake run
Visit your app at http://localhost:4300 for the current ember application, or http://localhost:19006 for the React Native version.
- Run
make build
ordocker compose build backend
to ensure the latest backend is built and being run - To run all tests run
make specs
orscript/backend rspec spec spec
, or you can run a specific test suite such asscript/backend rspec spec spec/services/weather_retriever_spec.rb
- Debugging tip: in Ruby code you can add a line that says
debugger
and rspec will automatically break on that line and give you an interactive Ruby shell
Several checks are configured to run on all commits using GitHub Actions, including lint, build and test steps. Definitions can be found in ./.github/workflows. Those checks which always run are required to be successful for pull requests to be merged.
Deployments target Heroku. The traditional deployment is manually configured and is composed of two distinct applications (frontend and api) in two environments (staging and production), with automatic deployments to staging of commits to master:
- flaredown-staging-api
- flaredown-staging-webapp (https://app.flaredown.com)
- flaredown-api
- flaredown-webapp (https://staging.flaredown.com) (Temporarily https://flaredown-staging-webapp.herokuapp.com/login due to #506)
Addons are used for Heroku Postgres, Heroku Redis, Heroku Scheduler + Papertrail. MongoDB is provided by mongodb.com.
- On first load, the app displays a blank beige screen instead of the login screen. Temporary fix is to add
console.log(process.env.FACEBOOK_APP_ID)
right inside of the module.exports at the top of thefrontend/config/environment.js
file. You can then refresh the page (no need to kill Docker) and this should fix it. You can now remove the log.
Copyright 2015-2024 Logan Merriam and contributors.
Flaredown is open source software made available under the GPLv3 License. For details see the LICENSE file.