Logo Lanfrica

tshepisofrominnostation/book-smart

Domain:

education

Record type:

software
Creator:
tsh
Host:
πŸ“š 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 …