📚 Book-Smart — B2B SaaS textbook tracking platform for South African township schools. Supabase + Netlify Serverless.
# 📚 Book-Smart — School Inventory Management Platform
> *Know exactly where every book is. Every single one.*
**Built by Tshepiso Freddy Thosago | Rem0Beg Solutions**
---
## 🌐 Live Demo
**👉
booksmart-platform.netlify.…
---
## 💡 What Book-Smart Solves
Primary schools in South Africa run textbook allocation from paper registers. The result:
- Books go missing with no record of who had them
- Year-end returns are chaotic
- No data for ordering next year's books
Book-Smart is a lightweight web platform purpose-built for township and government primary schools — simple enough for a school secretary to use on day one.
---
## 🏗️ Architecture
```
Static Frontend (HTML + CSS + JS)
- Hosted on Netlify CDN (loads in {
const { barcode } = JSON.parse(event.body);
// 1. Look up barcode in Supabase
const { data: book } = await supabase
.from('book_copies')
.select('*, books(*), students(*)')
.eq('barcode', barcode)
.single();
if (!book) return { statusCode: 404, body: 'Not found' };
// 2. Toggle status
const newStatus = book.status === 'available' ? 'issued' : 'available';
await supabase.from('book_copies').update({ status: newStatus }).eq('id', book.id);
// 3. Log the transaction
await supabase.from('transactions').insert({ book_copy_id: book.id, action: newStatus });
return { statusCode: 200, body: JSON.stringify({ book, newStatus }) };
};
```
---
## 🗄️ Database (Supabase / PostgreSQL)
```sql
schools (id, name, emis_number, province, contact_email)
books (id, school_id, title, isbn, subject, grade, replacement_cost)
book_copies (id, book_id, barcode, status, condition)
students (id, school_id, name, grade, parent_phone)
transactions (id, book_copy_id, student_id, action, created_at)
leads (id, school_name, contact_name, email, created_at)
```
---
## 💡 Interview Q&A
**"Why Netlify Functions instead of a full Express server?"**
> For a school platform that might process 200 scans on a Monday morning and nothing …