crm_OBUO_FARMS
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data β all from the browser, and deployed in milliseconds.
Viewing readonly version of main branch: v121View latest version
A dual-interface CRM application for OBUO Farms with separate client and admin portals.
- Issue: Orders were being created successfully in the database but the API was not returning the created order data, causing frontend errors
- Root Cause: SQLite result handling inconsistency - the
createOrderfunction wasn't properly extracting the created order from different possible result structures - Solution: Implemented robust result handling with fallback mechanisms to handle different SQLite response formats
- Status: β RESOLVED - Orders now create successfully and return proper data to the frontend
- Client Portal: Clean, simple order form for customers
- Admin Dashboard: Complete order management with authentication
- SQLite database for storing orders
- Automatic email confirmations to clients
- RESTful API for order management
- Simple, customer-friendly order form
- No backend data exposed to clients
- Automatic email confirmations
- Mobile-responsive design
- Professional OBUO Farms branding
- Secure login required
- Complete order management dashboard
- Create new orders manually
- View all orders with search/filter/sort
- Order statistics and analytics
- Logout functionality
Default Admin Credentials:
- Username:
admin - Password:
obuo2024
Note: Change these credentials for production use
βββ backend/
β βββ database/
β β βββ migrations.ts # Database schema
β β βββ queries.ts # Database operations
β βββ routes/
β β βββ orders.ts # Order API endpoints
β β βββ static.ts # Static file serving & routing
β βββ index.ts # Main Hono app
βββ frontend/
β βββ components/
β β βββ App.tsx # Main React app with routing
β β βββ ClientOrderForm.tsx # Public order form
β β βββ LoginForm.tsx # Admin login
β β βββ AdminDashboard.tsx # Admin interface
β β βββ OrderForm.tsx # Admin order creation
β β βββ Dashboard.tsx # Orders dashboard
β βββ index.html # Main HTML template
β βββ index.tsx # Frontend entry point
β βββ style.css # Styles
βββ shared/
βββ types.ts # Shared TypeScript types
βββ auth.ts # Authentication utilities
POST /api/orders- Create a new orderGET /api/orders- Get all orders (admin only)GET /api/orders/:id- Get specific orderPUT /api/orders/:id- Update orderDELETE /api/orders/:id- Delete order
/- Client order form (public)/admin- Admin login/dashboard (protected)/health- Health check endpoint
Orders table includes:
- Client information (name, phone, email)
- Order details (type, quantity, delivery date)
- Notes and timestamps
The application automatically initializes the database on startup. No additional setup is required.
- Visit the main page (
/) to place orders - Fill out the simple order form
- Receive automatic email confirmation
- Visit
/adminto access the dashboard - Login with admin credentials
- View all orders, create new orders, and manage the system
- Use the dashboard for analytics and order tracking
- β Separate client and admin interfaces
- β Authentication required for admin access
- β Session management with 24-hour expiry
- β No sensitive data exposed to clients
- β Secure order creation and management
- Fresh Fish
- Frozen Fish
- Live Fish
- Fish Fillet
- Smoked Fish
- Dried Fish
- Catfish
- Tilapia
- Fish Feed
- Other
- β Dual Interface Design: Separate client and admin portals
- β Client Portal: Clean, simple order form without backend exposure
- β Admin Dashboard: Complete order management with authentication
- β Responsive design for mobile and desktop
- β Real-time order creation with validation
- β Automatic email confirmations to clients
- β Search and filter orders by multiple criteria
- β Sort orders by date, client name, or delivery date
- β Visual status indicators for delivery dates
- β SQLite database with proper schema
- β RESTful API with error handling
- β TypeScript for type safety
- β Session-based authentication for admin access