Skip to content

404NotFoundIndonesia/fixit-hub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

404NFID Logo

GitHub Stars GitHub license

FixIT Hub

FixIT Hub is a web-based application designed to streamline and manage the service and repair operations for HP and laptop devices. It provides a centralized platform for technicians, administrators, and customers to collaborate effectively, track service requests, and ensure timely resolution of device issues.

FixIT Hub Screenshot

Goals

  • Efficient Service Management: Simplify the process of receiving, assigning, and completing service requests for HP and laptop devices.
  • Enhanced Customer Experience: Provide customers with a user-friendly interface to submit service requests, track progress, and receive updates on device repairs.
  • Improved Technician Productivity: Empower technicians with tools for efficient diagnosis, repair, and documentation of device issues.
  • Data Insights: Generate reports and analytics to gain insights into service trends, technician performance, and customer satisfaction.

Features

  • User Roles
    • Admin: Manages technicians, service requests, and system settings.
    • Technician: Receives, processes, and completes service requests.
    • Customer: Submits service requests, tracks progress, and communicates with technicians.
  • Customer-Facing Features
    • Service Request Submission: Customers can submit service requests by providing device details, issue descriptions, and contact information.
    • Service Tracking: Real-time status updates and notifications for customers to track the progress of their service requests.
    • Communication: Integrated messaging system for customers to communicate with assigned technicians regarding their device repairs.
  • Technician-Facing Features
    • Service Dashboard: Overview of assigned service requests, priorities, and pending tasks.
    • Device Diagnosis: Tools and resources for diagnosing device issues, troubleshooting, and documenting repair steps.
    • Service Completion: Marking service requests as completed, adding repair notes, and updating customer status.
  • Admin Dashboard
    • User Management: Add, edit, and manage technician accounts, customer profiles, and administrative settings.
    • Service Queue: Monitor and assign service requests to available technicians based on workload and expertise.
    • Analytics and Reporting: Generate reports on service performance, customer feedback, and device repair trends.

Technical Specifications

  • Framework: Ruby on Rails (Version 7.0.8)
  • Database: PostgreSQL
  • Frontend: HTML5, CSS3, JavaScript
  • Authentication: Devise gem for user authentication

Get Started

Get the Source Code

Of course, you need to put this code on your computer first. There are two ways to do this: by downloading the project zip file or by using Git (recommended).

  1. Download the Project Zip

    You can click on this link to download the zip file of this project.

  2. Git Clone

    Make sure that you have installed git. Open the directory where you want to place the source code in the terminal. Then, run the following command:

    git clone git@github.com:404NotFoundIndonesia/fixit-hub.git

Install Dependencies

Run the following command to install all the dependencies (gems) required by the Rails project:

bundle install

Setup Credentials

Go to the config directory and make sure there are files named credentials.yml.enc and master.key. If they are not present, run the following command:

rails credentials:edit

The command will open the decrypted credentials.yml.enc file. Once it's open, please enter the PostgreSQL credentials in the following format:

postgre_username: ...
postgre_password: ...
postgre_hostname: ...
postgre_database: ...

Please replace the ... symbols with your actual credentials.

Setup Database

Run the following command to create the database, run migrations, and seed data:

rails db:setup

Re-seedingdb/seeds.rb is idempotent. Re-running rails db:seed will not create duplicates.

Demo Accounts

After seeding, the following demo accounts are available:

Role Email Password
Admin admin@fixithub.com Admin1234!
Technician tech1@fixithub.com Tech1234!
Technician tech2@fixithub.com Tech1234!
Technician tech3@fixithub.com Tech1234!
Customer customer1@fixithub.com Customer1234!
Customer customer2@fixithub.com Customer1234!
Customer customer3@fixithub.com Customer1234!
Customer customer4@fixithub.com Customer1234!
Customer customer5@fixithub.com Customer1234!

The seed data includes service requests covering every status (submitted, assigned, in_diagnosis, in_repair, completed, cancelled) with sample messages and repair notes.

How to Run

To start the Rails server, make sure the terminal is in the root directory of the project and use the following command:

rails server

Open http://localhost:3000 in your browser to access FixIT Hub.

Docker

FixIT Hub ships with a multi-stage Dockerfile and two Compose files — one for local development and one for production (Traefik-backed HTTPS).

Development

1. Copy the dev env file and fill in values:

cp .env.dev.example .env.dev

The defaults in .env.dev.example work out of the box for local use — you only need to set a real SECRET_KEY_BASE:

# Generate a key
docker compose -f docker-compose.dev.yml run --rm web bundle exec rails secret

Paste the output into .env.dev as SECRET_KEY_BASE.

2. Start the stack:

docker compose -f docker-compose.dev.yml up

This starts three services: web (Rails on port 3000), db (PostgreSQL 16), and redis (Redis 7).
Source code is bind-mounted so edits reload live without rebuilding.

3. First-time database setup:

docker compose -f docker-compose.dev.yml run --rm web rails db:setup

This creates the database, runs migrations, and seeds demo data (see Demo Accounts above).

4. Open http://localhost:3000.

Subsequent runs — just docker compose -f docker-compose.dev.yml up. Re-run rails db:migrate after pulling schema changes.


Production

Production uses the optimised production build stage (precompiled assets, no dev/test gems, non-root user) and routes traffic through Traefik for automatic HTTPS via Let's Encrypt.

Prerequisites:

  • A running Traefik instance attached to the traefik_public Docker network.
  • A DNS A record pointing your domain to the server.

1. Copy and fill in the prod env file:

cp .env.prod.example .env.prod
Variable Description
APP_DOMAIN Your domain (e.g. fixit-hub.example.com)
POSTGRES_PASSWORD Strong DB password
SECRET_KEY_BASE Run bundle exec rails secret to generate
RAILS_MASTER_KEY Contents of config/master.key — never commit this

2. First deploy — migrate then start:

docker compose -f docker-compose.prod.yml run --rm web rails db:migrate
docker compose -f docker-compose.prod.yml up -d

3. Subsequent deploys:

docker compose -f docker-compose.prod.yml pull
docker compose -f docker-compose.prod.yml up -d --no-deps web
docker compose -f docker-compose.prod.yml run --rm web rails db:migrate

Useful commands:

# Tail logs
docker compose -f docker-compose.prod.yml logs -f web

# Open a Rails console
docker compose -f docker-compose.prod.yml exec web rails console

# Run seeds (idempotent)
docker compose -f docker-compose.prod.yml exec web rails db:seed

License

FixIT Hub is open-sourced software licensed under the MIT license.

About

FixIT Hub aims to revolutionize the management of HP and laptop service operations by offering a comprehensive platform for service providers and customers. With its user-friendly interface, robust features, and data-driven insights, FixIT Hub is poised to enhance efficiency, customer satisfaction, and business success in the service industry.

Topics

Resources

License

Stars

Watchers

Forks

Contributors