Busscotrade
Public B2B website + private internal CRM for invoices, receivables, inventory, payments, and reporting
A hybrid business system built for an industrial distributor: the public layer handles trust, offer clarity, and contact flow, while the internal layer supports invoice records, bank-statement-based payment tracking, customer debt visibility, stock movement, and CSV reporting.
Project type
B2B industrial website + internal operations CRM
Role
Full-stack developer
Year
2026
Scope
Public website, authentication, role-based dashboard, inventory, invoices, payments, document imports, reporting, deployment




Summary
Built for
An industrial distribution business that needed more than an online presence — a system that supports both market-facing communication and internal financial follow-through.
The problem
A brochure website could help with trust and discovery, but it would not solve overdue invoices, payment allocation, customer balances, or stock-related document workflows. The operational side of the business needed real structure.
Approach
I built a two-layer product: a bilingual public website for positioning and inquiries, and a protected internal CRM for invoices, payments, receivables, bank-statement imports, stock-aware document handling, and reporting.
Showcase story
Busscotrade is not just a company website. It is a two-layer B2B system: a public industrial presence and a protected internal CRM for finance and stock operations. The public layer communicates credibility, product structure, and partner trust, while the internal layer supports invoice records, stock movement, payment tracking, overdue monitoring, and CSV reporting.
The problem
A brochure website could help with trust and discovery, but it would not solve overdue invoices, payment allocation, customer balances, or stock-related document workflows. The operational side of the business needed real structure.
What I built
- A bilingual industrial website in Serbian and English
- Authentication and password-reset flows for internal users
- A protected dashboard with role-based access
- Invoice and goods-document workflows tied to stock movement
- Customer receivables tracking with overdue visibility
- Payment entry plus PDF bank-statement import
- Excel-based invoice import with a review step before confirmation
- CSV reports for stock, receivables, and turnover
Design decisions
The public site avoids flashy presentation and instead focuses on what matters in B2B industrial contexts: trust, legibility, product structure, and direct paths to contact. The category grid helps the offer feel organized instead of diffuse. The internal system is what turns this from a decent company website into a much stronger systems project. Role-based access, receivables tracking, and document-driven stock movement are exactly the kinds of internal workflows that determine whether a business can scale without chaos.
Under the hood
The public frontend is a bilingual marketing experience, while the private app is an authenticated, role-based dashboard covering inventory, invoices, receivables, payments, and reporting. That split demonstrates a more complete product mindset: not just attracting business, but running it.
Why it matters
This project signals:
- Product thinking that goes beyond marketing pages
- The ability to connect public presentation with internal operations
- Business workflow design, not just interface design
- Full-stack implementation across UI, data modeling, auth, and reporting
Final positioning line
A bilingual industrial website extended into a secure internal operations system for invoices, payments, receivables, stock movement, and reporting.
Under the hood
The public site and the internal CRM are genuinely separate layers. The public frontend is a bilingual marketing experience, while the private app is an authenticated, role-based dashboard covering inventory, invoices, receivables, payments, and reporting. Supabase handles auth, relational data, and row-level security, while dedicated import utilities parse Excel invoices and PDF bank statements before anything is confirmed into the system.
React
Public website and internal dashboard interface
TypeScript
Type-safe application logic across both layers
Supabase
Auth, relational data, and row-level security for the internal system
Tailwind CSS + shadcn/ui
Design system and component layer
TanStack Query
Data fetching and sync between the UI and Supabase
Excel and PDF parsing
Invoice import from spreadsheets and payment import from bank statements
Recharts
Reporting and KPI visualizations
Related work

Cook Master
AI recipe generator for everyday cooking
Open showcase
James Lohan Mission Control
Internal operations platform for a multi-service engineering workflow
Open showcase
Lawsy
Editorial newsletter platform for modern legal minds
Open showcase
CarPark Locator
Cross-platform parking assistant for drivers
Open showcase
Eye Line
Bilingual ophthalmology platform with a public clinic website and an internal scheduling dashboard
Open showcase
Home Budget
AI-powered personal finance dashboard
Open showcase