• Stars
    star
    187
  • Rank 206,464 (Top 5 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created almost 3 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Miru | Time Tracking and Invoicing and Employee Benefits. Built using Ruby On Rails and ReactJS


Miru is an open-source tool, designed to make time tracking, invoice management, and accounting easy for small businesses worldwide. It is a platform for organizations to help them streamline their workflow.

Build status GitHub contributors GitHub stars GitHub release (latest by date) GitHub commit activity GitHub license Twitter Follow Miru Monthly Timetracking page

Miru Invoice page


Installation

  1. Clone repo to local
git clone https://github.com/saeloun/miru-web.git
  1. Install rvm and nvm

    (Tip: To allow nvm to automatically detect and change node versions for your project as you cd into the directory follow this)

  2. Install ruby 3.2.2

rvm install $(cat .ruby-version)
  1. Install Node 18.14.2(can be skipped if you followed the tip mentioned in (2) above)
nvm install $(cat .nvmrc)
  1. Install Postgres
brew install postgresql
  1. Install elasticsearch
brew install elastic/tap/elasticsearch-full
brew services start elasticsearch-full

To run elasticsearch on latest macos(ventura) please follow the below instructions

docker run -dp 127.0.0.1:9200:9200 -p 127.0.0.1:9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.17.7
  1. Install Redis
brew install redis
  1. Setup the app
# Go to the miru-web app directory

bin/setup
  1. Run app in local env
foreman start -f Procfile.dev
  1. Navigate to http://0.0.0.0:3000

To receive the emails in non-production apps.

Go to /sent_emails for accessing the emails(for /sent_emails route to work, add EMAIL_DELIVERY_METHOD='letter_opener_web' to .env)

Tests & Coverage

Tests

  1. Run bin/rails db:create RAILS_ENV=test
  2. Run bin/rails db:migrate RAILS_ENV=test
  3. Run bundle exec rspec

Running Tests in Parallel

Change database.yml to embed TEST_ENV_NUMBER

test:
  database: miru_web_test_<%= ENV['TEST_ENV_NUMBER'] %>
# Setup parallel specs
bundle exec rake parallel:create

# Copy Schema for new changes on branches
bundle exec rake parallel:prepare

# Run migrations if needed
bundle exec rake parallel:migrate

# Run all specs in parallel
RAILS_ENV=test bundle exec rake parallel:spec

Coverage

  1. Run COVERAGE=true bundle exec rspec
  2. Open coverage/index.html(open coverage/index.html in MacOS and xdg-open coverage/index.html in Debian/Ubuntu)

Testing in Review apps

User Test credentials

Role Email Password
Owner [email protected] welcome
Admin [email protected] welcome
Employee [email protected] welcome
Book keeper [email protected] welcome
Client [email protected] welcome

Configure Sentry:

To configure Sentry set the project's sentry dsn as value to SENTRY_DNS environment variable.

Community Support

Contributing

We encourage everyone to contribute to Miru Web! Check out Contributing Guide for guidelines about how to proceed..

Note: We are working on improving the documentation. So we had created a docusaurus app for documentation. Check out the Miru Docs Repo.

Contributors ✨

Thanks goes to all our contributors

License

Miru Β© 2023, Saeloun - Released under the MIT License.