A modern Electronic Logging Device (ELD) application for commercial drivers, helping manage Hours of Service (HOS) compliance and trip planning.
- Real-time route calculation using OpenStreetMap
- Automatic distance and time calculations
- Required stop planning (fuel, rest breaks)
- HOS compliance validation
- Multi-day trip support
- Interactive 24-hour log grid
- Real-time HOS compliance checking
- Support for all duty statuses:
- Driving
- On-Duty (Not Driving)
- Off-Duty
- Sleeper Berth
- Automatic break scheduling
- Manual log entry and editing
- 11-hour driving limit enforcement
- 14-hour on-duty window tracking
- 30-minute break requirement
- 10-hour off-duty period
- 60/70-hour limit monitoring
- Node.js (v16 or higher)
- npm or yarn
- django 5.1
- Clone the repository:
git clone https://github.com/daniel-kav/tripwise-logbook.git
cd tripwise-logbook- Install dependencies:
npm install
# or
yarn install- Set up environment variables:
cp .env.example .env- Start the development server:
npm run dev
# or
yarn devtripwise-logbook/
├── src/
│ ├── components/ # Reusable UI components
│ ├── pages/ # Page components
│ ├── services/ # API and external service integrations
│ ├── utils/ # Utility functions and constants
│ ├── contexts/ # React contexts
│ ├── hooks/ # Custom React hooks
│ └── types/ # TypeScript type definitions
├── public/ # Static assets
└── package.json
- Interactive 24-hour log grid
- Real-time HOS compliance checking
- Manual entry and editing
- Status change validation
- Route visualization
- Stop location mapping
- Distance and time calculations
- Interactive markers
- Route planning interface
- HOS compliance validation
- Stop scheduling
- Multi-day trip support
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, please:
- Check the documentation
- Open an issue