Skip to content
/ miru-web Public
forked from saeloun/miru-web

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

License

Notifications You must be signed in to change notification settings

Labhk/miru-web

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


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.

Github CI 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 vipul@example.com welcome
Admin supriya@example.com welcome
Employee sam@example.com welcome
Book keeper book.keeper@example.com welcome
Client oliver@example.com 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.

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 57.1%
  • Ruby 36.8%
  • HTML 3.4%
  • SCSS 1.3%
  • JavaScript 1.1%
  • Shell 0.2%
  • Other 0.1%