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.
- 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.
- 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.
- Framework: Ruby on Rails (Version 7.0.8)
- Database: PostgreSQL
- Frontend: HTML5, CSS3, JavaScript
- Authentication: Devise gem for user authentication
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).
-
Download the Project Zip
You can click on this link to download the zip file of this project.
-
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
Run the following command to install all the dependencies (gems) required by the Rails project:
bundle installGo 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:editThe 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.
Run the following command to create the database, run migrations, and seed data:
rails db:setupRe-seeding —
db/seeds.rbis idempotent. Re-runningrails db:seedwill not create duplicates.
After seeding, the following demo accounts are available:
| Role | 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.
To start the Rails server, make sure the terminal is in the root directory of the project and use the following command:
rails serverOpen http://localhost:3000 in your browser to access FixIT Hub.
FixIT Hub ships with a multi-stage Dockerfile and two Compose files — one for local development and one for production (Traefik-backed HTTPS).
1. Copy the dev env file and fill in values:
cp .env.dev.example .env.devThe 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 secretPaste the output into .env.dev as SECRET_KEY_BASE.
2. Start the stack:
docker compose -f docker-compose.dev.yml upThis 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:setupThis 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 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_publicDocker 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 -d3. 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:migrateUseful 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:seedFixIT Hub is open-sourced software licensed under the MIT license.
