npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

k-m-exam

v1.0.0

Published

A full-stack web application for managing car repair services, built for SmartPark in Rubavu District, Rwanda.

Readme

Car Repair Payment Management System (CRPMS)

A full-stack web application for managing car repair services, built for SmartPark in Rubavu District, Rwanda.

Features

  • Car Management: Register and manage vehicle information
  • Service Catalog: Define repair services with pricing
  • Service Records: Track services performed on each car
  • Payment Processing: Record payments for completed services
  • Reporting: Generate daily reports and invoices
  • Authentication: Secure login with encrypted passwords

Tech Stack

Frontend:

  • React.js 18
  • React Router v6
  • Tailwind CSS
  • Axios

Backend:

  • Node.js
  • Express.js
  • MySQL
  • bcrypt (password hashing)
  • express-session (authentication)

Installation

Prerequisites

  • Node.js (v14 or higher)
  • MySQL Server (v8.0 or higher)

Database Setup

  1. Create Database:

    mysql -u root -p < database/crpms_schema.sql
  2. Update credentials in backend-project/.env:

    DB_HOST=localhost
    DB_USER=root
    DB_PASSWORD=your_mysql_password
    DB_NAME=CRPMS
  3. Initialize admin user:

    cd backend-project
    node scripts/init-admin.js

    Default login: admin / admin123

Backend Setup

cd backend-project
npm install
npm start

Server runs on: http://localhost:5000

Frontend Setup

cd frontend-project
npm install
npm start

App runs on: http://localhost:3000

Usage

  1. Login with admin credentials
  2. Add Cars - Register vehicles that come for repair
  3. Add Services - Define available repair services
  4. Create Service Records - Link cars to services
  5. Record Payments - Add payment for completed services
  6. Generate Reports - View daily summaries and print invoices

Default Services

| Service | Price (Rwf) | |---------|-------------| | Engine repair | 150,000 | | Transmission repair | 80,000 | | Oil Change | 60,000 | | Chain replacement | 40,000 | | Disc replacement | 400,000 | | Wheel alignment | 5,000 |

Project Structure

k-m exam/
├── backend-project/
│   ├── server.js              # Express server (all routes inline)
│   ├── db.js                  # MySQL connection pool
│   ├── package.json
│   └── .env
├── frontend-project/
│   ├── public/
│   ├── src/
│   │   ├── components/
│   │   │   ├── Login.js
│   │   │   ├── Navbar.js
│   │   │   ├── CarForm.js
│   │   │   ├── CarList.js
│   │   │   ├── ServiceForm.js
│   │   │   ├── ServiceList.js
│   │   │   ├── ServiceRecordForm.js
│   │   │   ├── PaymentForm.js
│   │   │   ├── Reports.js
│   │   │   └── InvoiceModal.js
│   │   ├── services/
│   │   │   └── api.js
│   │   ├── App.js
│   │   ├── index.js
│   │   └── index.css
│   ├── package.json
│   └── tailwind.config.js
└── database/
    └── crpms_schema.sql

Entity Relationships

  • Car: One car can have many service records
  • Services: One service can be used in many service records
  • ServiceRecord: Links Car and Services; has one Payment
  • Payment: Associated with one ServiceRecord
  • User: For authentication

Security Features

  • Password hashing with bcrypt
  • Session-based authentication
  • Protected API routes
  • CORS configured for frontend only

Responsive Design

The application uses Tailwind CSS for a fully responsive layout that works on desktop, tablet, and mobile devices.

Notes

  • All CRUD operations use proper foreign key relationships
  • Daily reports show all services and payments for selected date
  • Invoices can be generated and printed for any service record
  • Error handling implemented throughout

SmartPark Car Repair Payment Management System Developed for National Practical Exam 2025