popsite-ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/App.jsx +95 -0
  2. package/README.md +92 -0
  3. package/components/layout/PortalHeader.jsx +18 -0
  4. package/components/layout/SystemSidebar.jsx +33 -0
  5. package/components/modules/AnalyticsDashboardModule.jsx +17 -0
  6. package/components/modules/ChatMessagingModule.jsx +17 -0
  7. package/components/modules/EcommerceStoreModule.jsx +17 -0
  8. package/components/modules/EventTicketBookingModule.jsx +17 -0
  9. package/components/modules/FlightBookingModule.jsx +17 -0
  10. package/components/modules/FoodOrderingModule.jsx +17 -0
  11. package/components/modules/HospitalAppointmentModule.jsx +17 -0
  12. package/components/modules/HotelBookingModule.jsx +17 -0
  13. package/components/modules/InvoiceBillingModule.jsx +17 -0
  14. package/components/modules/LibraryManagementModule.jsx +17 -0
  15. package/components/modules/ModuleContentDeck.jsx +44 -0
  16. package/components/modules/MovieBookingModule.jsx +17 -0
  17. package/components/modules/QuizExamModule.jsx +17 -0
  18. package/components/modules/StudentRegistrationModule.jsx +17 -0
  19. package/components/modules/SystemModuleRenderer.jsx +19 -0
  20. package/components/modules/SystemModuleTemplate.jsx +62 -0
  21. package/components/modules/SystemVisualWidget.jsx +123 -0
  22. package/components/modules/moduleContentMap.js +238 -0
  23. package/components/modules/moduleEnhancementsMap.js +439 -0
  24. package/components/modules/systemModuleMap.js +31 -0
  25. package/components/system/DynamicSystemForm.jsx +154 -0
  26. package/components/system/SystemHero.jsx +21 -0
  27. package/components/system/SystemSummaryCard.jsx +53 -0
  28. package/data/systems/analyticsDashboard.js +48 -0
  29. package/data/systems/chatMessaging.js +43 -0
  30. package/data/systems/ecommerceStore.js +50 -0
  31. package/data/systems/eventTicketBooking.js +50 -0
  32. package/data/systems/flightBooking.js +38 -0
  33. package/data/systems/foodOrdering.js +48 -0
  34. package/data/systems/hospitalAppointment.js +50 -0
  35. package/data/systems/hotelBooking.js +38 -0
  36. package/data/systems/index.js +31 -0
  37. package/data/systems/invoiceBilling.js +50 -0
  38. package/data/systems/libraryManagement.js +43 -0
  39. package/data/systems/movieBooking.js +48 -0
  40. package/data/systems/quizExam.js +38 -0
  41. package/data/systems/studentRegistration.js +43 -0
  42. package/dist/popsite-ui.es.js +4368 -0
  43. package/dist/popsite-ui.umd.js +60 -0
  44. package/dist/style.css +1 -0
  45. package/index.html +13 -0
  46. package/library/index.js +20 -0
  47. package/main.jsx +15 -0
  48. package/package.json +40 -0
  49. package/src/App.jsx +12 -0
  50. package/src/components/modules/AnalyticsDashboardModule.jsx +224 -0
  51. package/src/components/modules/ChatMessagingModule.jsx +294 -0
  52. package/src/components/modules/EcommerceStoreModule.jsx +405 -0
  53. package/src/components/modules/EventTicketBookingModule.jsx +253 -0
  54. package/src/components/modules/FlightBookingModule.jsx +399 -0
  55. package/src/components/modules/FoodOrderingModule.jsx +316 -0
  56. package/src/components/modules/HospitalAppointmentModule.jsx +267 -0
  57. package/src/components/modules/HotelBookingModule.jsx +317 -0
  58. package/src/components/modules/InvoiceBillingModule.jsx +302 -0
  59. package/src/components/modules/LandingPageModule.jsx +185 -0
  60. package/src/components/modules/LibraryManagementModule.jsx +189 -0
  61. package/src/components/modules/MovieBookingModule.jsx +337 -0
  62. package/src/components/modules/QuizExamModule.jsx +255 -0
  63. package/src/components/modules/StudentRegistrationModule.jsx +292 -0
  64. package/src/components/system/SystemHero.jsx +44 -0
  65. package/src/components/system/SystemSummaryCard.jsx +29 -0
  66. package/src/components/system/Toast.jsx +69 -0
  67. package/src/data/systems/analyticsDashboard.js +32 -0
  68. package/src/data/systems/chatMessaging.js +59 -0
  69. package/src/data/systems/ecommerceStore.js +84 -0
  70. package/src/data/systems/eventBooking.js +33 -0
  71. package/src/data/systems/flightBooking.js +59 -0
  72. package/src/data/systems/foodOrdering.js +48 -0
  73. package/src/data/systems/hospitalAppointment.js +48 -0
  74. package/src/data/systems/hotelBooking.js +59 -0
  75. package/src/data/systems/invoiceBilling.js +19 -0
  76. package/src/data/systems/landingPage.js +29 -0
  77. package/src/data/systems/libraryManagement.js +17 -0
  78. package/src/data/systems/movieBooking.js +49 -0
  79. package/src/data/systems/quizExam.js +31 -0
  80. package/src/data/systems/studentRegistration.js +9 -0
  81. package/src/index.js +22 -0
  82. package/src/main.jsx +10 -0
  83. package/src/styles.css +296 -0
  84. package/styles.css +820 -0
  85. package/utils/systemEngine.js +128 -0
  86. package/vite.config.js +8 -0
  87. package/vite.lib.config.js +27 -0
@@ -0,0 +1,48 @@
1
+ const analyticsDashboardSystem = {
2
+ id: 'analytics-dashboard',
3
+ title: 'Analytics Dashboard',
4
+ uiStyle: 'Data-heavy UI',
5
+ appearance: 'light',
6
+ primary: '#7c3aed',
7
+ description: 'Dense analytical setup flow for dataset volume, refresh cadence, and seat planning.',
8
+ highlights: ['Data source scaling', 'Refresh schedule', 'Analyst seat economics'],
9
+ fields: [
10
+ { name: 'accountName', label: 'Account Name', type: 'text', required: true, placeholder: 'Growth Intelligence' },
11
+ {
12
+ name: 'dashboardType',
13
+ label: 'Dashboard Type',
14
+ type: 'select',
15
+ options: ['Executive KPI', 'Marketing Funnel', 'Finance Control', 'Product Usage']
16
+ },
17
+ { name: 'dataSources', label: 'Data Sources', type: 'number', min: 1, max: 100, defaultValue: 8, required: true },
18
+ {
19
+ name: 'refreshRate',
20
+ label: 'Refresh Rate',
21
+ type: 'select',
22
+ options: ['Hourly', 'Every 6 Hours', 'Daily', 'Weekly']
23
+ },
24
+ { name: 'analystSeats', label: 'Analyst Seats', type: 'number', min: 1, max: 120, defaultValue: 10, required: true },
25
+ {
26
+ name: 'subscriptionTier',
27
+ label: 'Subscription Tier',
28
+ type: 'radio',
29
+ options: ['Core', 'Pro', 'Elite'],
30
+ defaultValue: 'Core'
31
+ }
32
+ ],
33
+ pricing: {
34
+ quantityField: 'analystSeats',
35
+ quantityLabel: 'Seats',
36
+ tierField: 'subscriptionTier',
37
+ tiers: {
38
+ Core: 55,
39
+ Pro: 95,
40
+ Elite: 150
41
+ },
42
+ fee: 40,
43
+ currency: 'USD',
44
+ chargeLabel: 'Platform Total'
45
+ }
46
+ };
47
+
48
+ export default analyticsDashboardSystem;
@@ -0,0 +1,43 @@
1
+ const chatMessagingSystem = {
2
+ id: 'chat-messaging',
3
+ title: 'Chat and Messaging App',
4
+ uiStyle: 'WhatsApp Web UI',
5
+ appearance: 'light',
6
+ primary: '#0084ff',
7
+ description: 'Communication workspace setup with team seats, support windows, and plan tiers.',
8
+ highlights: ['Workspace onboarding', 'Seat scaling', 'Plan-level pricing'],
9
+ fields: [
10
+ { name: 'workspaceName', label: 'Workspace Name', type: 'text', required: true, placeholder: 'Blue Orbit Team' },
11
+ { name: 'teamLead', label: 'Team Lead', type: 'text', required: true, placeholder: 'Priya Das' },
12
+ { name: 'activeUsers', label: 'Active Users', type: 'number', min: 1, max: 500, defaultValue: 25, required: true },
13
+ { name: 'goLiveDate', label: 'Go Live Date', type: 'date', required: true },
14
+ {
15
+ name: 'planTier',
16
+ label: 'Plan Tier',
17
+ type: 'radio',
18
+ options: ['Starter', 'Business', 'Enterprise'],
19
+ defaultValue: 'Starter'
20
+ },
21
+ {
22
+ name: 'supportWindow',
23
+ label: 'Support Window',
24
+ type: 'select',
25
+ options: ['Business Hours', 'Extended Hours', '24x7 Support']
26
+ }
27
+ ],
28
+ pricing: {
29
+ quantityField: 'activeUsers',
30
+ quantityLabel: 'Users',
31
+ tierField: 'planTier',
32
+ tiers: {
33
+ Starter: 6,
34
+ Business: 12,
35
+ Enterprise: 20
36
+ },
37
+ fee: 15,
38
+ currency: 'USD',
39
+ chargeLabel: 'Subscription Total'
40
+ }
41
+ };
42
+
43
+ export default chatMessagingSystem;
@@ -0,0 +1,50 @@
1
+ const ecommerceStoreSystem = {
2
+ id: 'ecommerce-store',
3
+ title: 'E-commerce Store',
4
+ uiStyle: 'Amazon-style UI',
5
+ appearance: 'light',
6
+ primary: '#f97316',
7
+ description: 'Commerce checkout shell with delivery plans, quantity scaling, and invoice totals.',
8
+ highlights: ['Catalog-first flow', 'Fulfillment options', 'Order economics panel'],
9
+ fields: [
10
+ { name: 'customerName', label: 'Customer Name', type: 'text', required: true, placeholder: 'Morgan Reed' },
11
+ {
12
+ name: 'category',
13
+ label: 'Product Category',
14
+ type: 'select',
15
+ options: ['Electronics', 'Home Decor', 'Sports', 'Beauty']
16
+ },
17
+ { name: 'dispatchDate', label: 'Dispatch Date', type: 'date', required: true },
18
+ { name: 'quantity', label: 'Quantity', type: 'number', min: 1, max: 50, defaultValue: 1, required: true },
19
+ {
20
+ name: 'deliveryPlan',
21
+ label: 'Delivery Plan',
22
+ type: 'radio',
23
+ options: ['Standard', 'Prime', 'Same Day'],
24
+ defaultValue: 'Standard'
25
+ },
26
+ {
27
+ name: 'addressNote',
28
+ label: 'Address Note',
29
+ type: 'textarea',
30
+ rows: 3,
31
+ placeholder: 'Landmark or delivery instruction',
32
+ fullWidth: true
33
+ }
34
+ ],
35
+ pricing: {
36
+ quantityField: 'quantity',
37
+ quantityLabel: 'Units',
38
+ tierField: 'deliveryPlan',
39
+ tiers: {
40
+ Standard: 35,
41
+ Prime: 55,
42
+ 'Same Day': 85
43
+ },
44
+ fee: 12,
45
+ currency: 'USD',
46
+ chargeLabel: 'Order Grand Total'
47
+ }
48
+ };
49
+
50
+ export default ecommerceStoreSystem;
@@ -0,0 +1,50 @@
1
+ const eventTicketBookingSystem = {
2
+ id: 'event-ticket-booking',
3
+ title: 'Event and Ticket Booking',
4
+ uiStyle: 'Dark event UI',
5
+ appearance: 'dark',
6
+ primary: '#7c3aed',
7
+ description: 'Concert and stage event workflow with dark visuals and access-zone tiers.',
8
+ highlights: ['Event-centric cards', 'Zone-based access', 'Fast attendee confirmation'],
9
+ fields: [
10
+ { name: 'attendeeName', label: 'Attendee Name', type: 'text', required: true, placeholder: 'Riley Brooks' },
11
+ {
12
+ name: 'eventName',
13
+ label: 'Event',
14
+ type: 'select',
15
+ options: ['Indie Night Live', 'Tech Summit 2026', 'Stand-up Showcase', 'Startup Expo']
16
+ },
17
+ { name: 'eventDate', label: 'Event Date', type: 'date', required: true },
18
+ { name: 'passes', label: 'Passes', type: 'number', min: 1, max: 20, defaultValue: 2, required: true },
19
+ {
20
+ name: 'accessZone',
21
+ label: 'Access Zone',
22
+ type: 'radio',
23
+ options: ['General', 'VIP', 'Backstage'],
24
+ defaultValue: 'General'
25
+ },
26
+ {
27
+ name: 'notes',
28
+ label: 'Special Notes',
29
+ type: 'textarea',
30
+ rows: 3,
31
+ placeholder: 'Accessibility or seating preferences',
32
+ fullWidth: true
33
+ }
34
+ ],
35
+ pricing: {
36
+ quantityField: 'passes',
37
+ quantityLabel: 'Passes',
38
+ tierField: 'accessZone',
39
+ tiers: {
40
+ General: 95,
41
+ VIP: 180,
42
+ Backstage: 320
43
+ },
44
+ fee: 35,
45
+ currency: 'USD',
46
+ chargeLabel: 'Event Total'
47
+ }
48
+ };
49
+
50
+ export default eventTicketBookingSystem;
@@ -0,0 +1,38 @@
1
+ const flightBookingSystem = {
2
+ id: 'flight-booking',
3
+ title: 'Flight Booking System',
4
+ uiStyle: 'Clean travel UI',
5
+ appearance: 'light',
6
+ primary: '#1a73e8',
7
+ description: 'Route-first travel booking flow with clear class selection and traveler totals.',
8
+ highlights: ['City pair routing', 'Cabin class pricing', 'Travel-ready summary'],
9
+ fields: [
10
+ { name: 'passengerName', label: 'Passenger Name', type: 'text', required: true, placeholder: 'Jordan Lee' },
11
+ { name: 'origin', label: 'From', type: 'select', options: ['Chennai', 'Mumbai', 'Delhi', 'Bengaluru'] },
12
+ { name: 'destination', label: 'To', type: 'select', options: ['Dubai', 'Singapore', 'London', 'New York'] },
13
+ { name: 'travelDate', label: 'Travel Date', type: 'date', required: true },
14
+ { name: 'passengers', label: 'Passengers', type: 'number', min: 1, max: 8, defaultValue: 1, required: true },
15
+ {
16
+ name: 'cabinClass',
17
+ label: 'Cabin Class',
18
+ type: 'radio',
19
+ options: ['Economy', 'Business', 'First Class'],
20
+ defaultValue: 'Economy'
21
+ }
22
+ ],
23
+ pricing: {
24
+ quantityField: 'passengers',
25
+ quantityLabel: 'Travelers',
26
+ tierField: 'cabinClass',
27
+ tiers: {
28
+ Economy: 180,
29
+ Business: 420,
30
+ 'First Class': 720
31
+ },
32
+ fee: 65,
33
+ currency: 'USD',
34
+ chargeLabel: 'Trip Total'
35
+ }
36
+ };
37
+
38
+ export default flightBookingSystem;
@@ -0,0 +1,48 @@
1
+ const foodOrderingSystem = {
2
+ id: 'food-ordering',
3
+ title: 'Food Ordering System',
4
+ uiStyle: 'Swiggy-style UI',
5
+ appearance: 'light',
6
+ primary: '#fc8019',
7
+ description: 'Fast-moving delivery ordering UI with per-item totals and delivery speed tiers.',
8
+ highlights: ['Restaurant switcher', 'Delivery speed tiers', 'Live-ready order summary'],
9
+ fields: [
10
+ { name: 'customerName', label: 'Customer Name', type: 'text', required: true, placeholder: 'Casey James' },
11
+ {
12
+ name: 'restaurant',
13
+ label: 'Restaurant',
14
+ type: 'select',
15
+ options: ['Spice Factory', 'Urban Bowl', 'Tandoor Point', 'Salad Story']
16
+ },
17
+ { name: 'deliveryDate', label: 'Delivery Date', type: 'date', required: true },
18
+ {
19
+ name: 'deliveryWindow',
20
+ label: 'Delivery Window',
21
+ type: 'select',
22
+ options: ['30 mins', '45 mins', '60 mins', '90 mins']
23
+ },
24
+ { name: 'items', label: 'Items', type: 'number', min: 1, max: 25, defaultValue: 3, required: true },
25
+ {
26
+ name: 'deliveryType',
27
+ label: 'Delivery Type',
28
+ type: 'radio',
29
+ options: ['Standard', 'Express', 'Priority'],
30
+ defaultValue: 'Standard'
31
+ }
32
+ ],
33
+ pricing: {
34
+ quantityField: 'items',
35
+ quantityLabel: 'Items',
36
+ tierField: 'deliveryType',
37
+ tiers: {
38
+ Standard: 14,
39
+ Express: 21,
40
+ Priority: 28
41
+ },
42
+ fee: 5,
43
+ currency: 'USD',
44
+ chargeLabel: 'Order Total'
45
+ }
46
+ };
47
+
48
+ export default foodOrderingSystem;
@@ -0,0 +1,50 @@
1
+ const hospitalAppointmentSystem = {
2
+ id: 'hospital-appointment',
3
+ title: 'Hospital and Appointment System',
4
+ uiStyle: 'Medical UI',
5
+ appearance: 'light',
6
+ primary: '#00897b',
7
+ description: 'Clean care-centric scheduling UI for departments, modes, and appointment batches.',
8
+ highlights: ['Department routing', 'Consultation modes', 'Appointment totals'],
9
+ fields: [
10
+ { name: 'patientName', label: 'Patient Name', type: 'text', required: true, placeholder: 'Samira Khan' },
11
+ {
12
+ name: 'department',
13
+ label: 'Department',
14
+ type: 'select',
15
+ options: ['Cardiology', 'Dermatology', 'Orthopedics', 'General Medicine']
16
+ },
17
+ { name: 'appointmentDate', label: 'Appointment Date', type: 'date', required: true },
18
+ { name: 'slots', label: 'Slots', type: 'number', min: 1, max: 5, defaultValue: 1, required: true },
19
+ {
20
+ name: 'consultationMode',
21
+ label: 'Consultation Mode',
22
+ type: 'radio',
23
+ options: ['OPD', 'Telehealth', 'Priority'],
24
+ defaultValue: 'OPD'
25
+ },
26
+ {
27
+ name: 'symptoms',
28
+ label: 'Symptoms Note',
29
+ type: 'textarea',
30
+ rows: 3,
31
+ placeholder: 'Describe key symptoms briefly',
32
+ fullWidth: true
33
+ }
34
+ ],
35
+ pricing: {
36
+ quantityField: 'slots',
37
+ quantityLabel: 'Appointments',
38
+ tierField: 'consultationMode',
39
+ tiers: {
40
+ OPD: 60,
41
+ Telehealth: 75,
42
+ Priority: 120
43
+ },
44
+ fee: 20,
45
+ currency: 'USD',
46
+ chargeLabel: 'Consultation Total'
47
+ }
48
+ };
49
+
50
+ export default hospitalAppointmentSystem;
@@ -0,0 +1,38 @@
1
+ const hotelBookingSystem = {
2
+ id: 'hotel-booking',
3
+ title: 'Hotel Booking System',
4
+ uiStyle: 'Airbnb-style UI',
5
+ appearance: 'light',
6
+ primary: '#ff5a5f',
7
+ description: 'Warm hospitality layout for stays, room classes, and night-based billing.',
8
+ highlights: ['Stay length billing', 'Room categories', 'Guest-friendly flow'],
9
+ fields: [
10
+ { name: 'guestName', label: 'Guest Name', type: 'text', required: true, placeholder: 'Taylor Watts' },
11
+ { name: 'city', label: 'City', type: 'select', options: ['Goa', 'Jaipur', 'Pondicherry', 'Kochi'] },
12
+ { name: 'checkInDate', label: 'Check In', type: 'date', required: true },
13
+ { name: 'nights', label: 'Nights', type: 'number', min: 1, max: 30, defaultValue: 2, required: true },
14
+ {
15
+ name: 'roomType',
16
+ label: 'Room Type',
17
+ type: 'radio',
18
+ options: ['Studio', 'Deluxe', 'Suite'],
19
+ defaultValue: 'Studio'
20
+ },
21
+ { name: 'guests', label: 'Guests', type: 'number', min: 1, max: 6, defaultValue: 2, required: true }
22
+ ],
23
+ pricing: {
24
+ quantityField: 'nights',
25
+ quantityLabel: 'Nights',
26
+ tierField: 'roomType',
27
+ tiers: {
28
+ Studio: 120,
29
+ Deluxe: 210,
30
+ Suite: 360
31
+ },
32
+ fee: 80,
33
+ currency: 'USD',
34
+ chargeLabel: 'Stay Total'
35
+ }
36
+ };
37
+
38
+ export default hotelBookingSystem;
@@ -0,0 +1,31 @@
1
+ import movieBookingSystem from './movieBooking';
2
+ import flightBookingSystem from './flightBooking';
3
+ import hotelBookingSystem from './hotelBooking';
4
+ import eventTicketBookingSystem from './eventTicketBooking';
5
+ import foodOrderingSystem from './foodOrdering';
6
+ import ecommerceStoreSystem from './ecommerceStore';
7
+ import libraryManagementSystem from './libraryManagement';
8
+ import studentRegistrationSystem from './studentRegistration';
9
+ import hospitalAppointmentSystem from './hospitalAppointment';
10
+ import invoiceBillingSystem from './invoiceBilling';
11
+ import chatMessagingSystem from './chatMessaging';
12
+ import analyticsDashboardSystem from './analyticsDashboard';
13
+ import quizExamSystem from './quizExam';
14
+
15
+ const systems = [
16
+ movieBookingSystem,
17
+ flightBookingSystem,
18
+ hotelBookingSystem,
19
+ eventTicketBookingSystem,
20
+ foodOrderingSystem,
21
+ ecommerceStoreSystem,
22
+ libraryManagementSystem,
23
+ studentRegistrationSystem,
24
+ hospitalAppointmentSystem,
25
+ invoiceBillingSystem,
26
+ chatMessagingSystem,
27
+ analyticsDashboardSystem,
28
+ quizExamSystem
29
+ ];
30
+
31
+ export default systems;
@@ -0,0 +1,50 @@
1
+ const invoiceBillingSystem = {
2
+ id: 'invoice-billing',
3
+ title: 'Invoice and Billing System',
4
+ uiStyle: 'FreshBooks-style UI',
5
+ appearance: 'light',
6
+ primary: '#1e3a5f',
7
+ description: 'Professional billing interface for services, usage units, and polished invoice totals.',
8
+ highlights: ['Client-first billing', 'Plan-based unit rates', 'Clear amount breakdown'],
9
+ fields: [
10
+ { name: 'clientName', label: 'Client Name', type: 'text', required: true, placeholder: 'Northwind Labs' },
11
+ {
12
+ name: 'serviceType',
13
+ label: 'Service Type',
14
+ type: 'select',
15
+ options: ['Design', 'Engineering', 'Consulting', 'Support']
16
+ },
17
+ { name: 'invoiceDate', label: 'Invoice Date', type: 'date', required: true },
18
+ { name: 'billableUnits', label: 'Billable Units', type: 'number', min: 1, max: 300, defaultValue: 20, required: true },
19
+ {
20
+ name: 'billingPlan',
21
+ label: 'Billing Plan',
22
+ type: 'radio',
23
+ options: ['Hourly', 'Project', 'Retainer'],
24
+ defaultValue: 'Hourly'
25
+ },
26
+ {
27
+ name: 'memo',
28
+ label: 'Invoice Memo',
29
+ type: 'textarea',
30
+ rows: 3,
31
+ placeholder: 'Reference terms, milestone, or PO number',
32
+ fullWidth: true
33
+ }
34
+ ],
35
+ pricing: {
36
+ quantityField: 'billableUnits',
37
+ quantityLabel: 'Units',
38
+ tierField: 'billingPlan',
39
+ tiers: {
40
+ Hourly: 40,
41
+ Project: 70,
42
+ Retainer: 90
43
+ },
44
+ fee: 25,
45
+ currency: 'USD',
46
+ chargeLabel: 'Invoice Total'
47
+ }
48
+ };
49
+
50
+ export default invoiceBillingSystem;
@@ -0,0 +1,43 @@
1
+ const libraryManagementSystem = {
2
+ id: 'library-management',
3
+ title: 'Library Management System',
4
+ uiStyle: 'Admin panel UI',
5
+ appearance: 'light',
6
+ primary: '#0891b2',
7
+ description: 'Administrative module for membership, lending period, and service charge control.',
8
+ highlights: ['Member onboarding', 'Borrow duration controls', 'Librarian dashboard rhythm'],
9
+ fields: [
10
+ { name: 'librarianName', label: 'Librarian Name', type: 'text', required: true, placeholder: 'Devika Nair' },
11
+ { name: 'memberName', label: 'Member Name', type: 'text', required: true, placeholder: 'Noah Carter' },
12
+ {
13
+ name: 'bookCategory',
14
+ label: 'Book Category',
15
+ type: 'select',
16
+ options: ['Technology', 'Literature', 'Business', 'History']
17
+ },
18
+ { name: 'issueDate', label: 'Issue Date', type: 'date', required: true },
19
+ { name: 'borrowDays', label: 'Borrow Days', type: 'number', min: 1, max: 45, defaultValue: 7, required: true },
20
+ {
21
+ name: 'membershipType',
22
+ label: 'Membership Type',
23
+ type: 'radio',
24
+ options: ['Regular', 'Scholar', 'Premium'],
25
+ defaultValue: 'Regular'
26
+ }
27
+ ],
28
+ pricing: {
29
+ quantityField: 'borrowDays',
30
+ quantityLabel: 'Borrow Days',
31
+ tierField: 'membershipType',
32
+ tiers: {
33
+ Regular: 2,
34
+ Scholar: 1,
35
+ Premium: 3
36
+ },
37
+ fee: 10,
38
+ currency: 'USD',
39
+ chargeLabel: 'Library Service Total'
40
+ }
41
+ };
42
+
43
+ export default libraryManagementSystem;
@@ -0,0 +1,48 @@
1
+ const movieBookingSystem = {
2
+ id: 'movie-booking',
3
+ title: 'Movie Booking System',
4
+ uiStyle: 'Dark cinema UI',
5
+ appearance: 'dark',
6
+ primary: '#e50914',
7
+ description: 'High-contrast cinema booking workspace with tiered seating and fast checkout.',
8
+ highlights: ['Night show focus', 'Tiered seats', 'Compact confirmation'],
9
+ fields: [
10
+ { name: 'customerName', label: 'Customer Name', type: 'text', required: true, placeholder: 'Alex Morgan' },
11
+ {
12
+ name: 'movieTitle',
13
+ label: 'Movie',
14
+ type: 'select',
15
+ options: ['Dune: Part Two', 'Oppenheimer', 'Interstellar', 'Spider-Verse']
16
+ },
17
+ { name: 'showDate', label: 'Show Date', type: 'date', required: true },
18
+ {
19
+ name: 'showTime',
20
+ label: 'Show Time',
21
+ type: 'select',
22
+ options: ['12:00 PM', '03:30 PM', '07:00 PM', '10:15 PM']
23
+ },
24
+ { name: 'seats', label: 'Seats', type: 'number', min: 1, max: 12, defaultValue: 2, required: true },
25
+ {
26
+ name: 'seatType',
27
+ label: 'Seat Type',
28
+ type: 'radio',
29
+ options: ['Standard', 'Premium', 'Recliner'],
30
+ defaultValue: 'Standard'
31
+ }
32
+ ],
33
+ pricing: {
34
+ quantityField: 'seats',
35
+ quantityLabel: 'Seats',
36
+ tierField: 'seatType',
37
+ tiers: {
38
+ Standard: 220,
39
+ Premium: 430,
40
+ Recliner: 760
41
+ },
42
+ fee: 45,
43
+ currency: 'USD',
44
+ chargeLabel: 'Checkout Total'
45
+ }
46
+ };
47
+
48
+ export default movieBookingSystem;
@@ -0,0 +1,38 @@
1
+ const quizExamSystem = {
2
+ id: 'quiz-exam',
3
+ title: 'Quiz and Exam System',
4
+ uiStyle: 'Test-taking UI',
5
+ appearance: 'light',
6
+ primary: '#16a34a',
7
+ description: 'Assessment setup portal focused on candidates, mode controls, and proctor pricing.',
8
+ highlights: ['Exam logistics', 'Mode switch', 'Candidate-linked totals'],
9
+ fields: [
10
+ { name: 'instructorName', label: 'Instructor Name', type: 'text', required: true, placeholder: 'Nina Thomas' },
11
+ { name: 'examTitle', label: 'Exam Title', type: 'text', required: true, placeholder: 'Data Structures Midterm' },
12
+ { name: 'examDate', label: 'Exam Date', type: 'date', required: true },
13
+ { name: 'questionCount', label: 'Question Count', type: 'number', min: 10, max: 300, defaultValue: 50, required: true },
14
+ { name: 'candidates', label: 'Candidates', type: 'number', min: 1, max: 2000, defaultValue: 60, required: true },
15
+ {
16
+ name: 'examMode',
17
+ label: 'Exam Mode',
18
+ type: 'radio',
19
+ options: ['Practice', 'Proctored', 'Certification'],
20
+ defaultValue: 'Practice'
21
+ }
22
+ ],
23
+ pricing: {
24
+ quantityField: 'candidates',
25
+ quantityLabel: 'Candidates',
26
+ tierField: 'examMode',
27
+ tiers: {
28
+ Practice: 2,
29
+ Proctored: 5,
30
+ Certification: 9
31
+ },
32
+ fee: 18,
33
+ currency: 'USD',
34
+ chargeLabel: 'Assessment Total'
35
+ }
36
+ };
37
+
38
+ export default quizExamSystem;
@@ -0,0 +1,43 @@
1
+ const studentRegistrationSystem = {
2
+ id: 'student-registration',
3
+ title: 'Student Registration System',
4
+ uiStyle: 'University portal UI',
5
+ appearance: 'light',
6
+ primary: '#4f46e5',
7
+ description: 'Structured academic registration module for course, semester, and enrollment type.',
8
+ highlights: ['Academic intake flow', 'Semester-linked fees', 'Department-ready details'],
9
+ fields: [
10
+ { name: 'studentName', label: 'Student Name', type: 'text', required: true, placeholder: 'Aarav Menon' },
11
+ { name: 'registerNo', label: 'Register Number', type: 'text', required: true, placeholder: 'VIT-26-0142' },
12
+ { name: 'email', label: 'Email', type: 'email', required: true, placeholder: 'student@university.edu' },
13
+ {
14
+ name: 'course',
15
+ label: 'Course',
16
+ type: 'select',
17
+ options: ['B.Tech CSE', 'B.Tech IT', 'MBA', 'B.Sc Data Science']
18
+ },
19
+ { name: 'semester', label: 'Semester', type: 'number', min: 1, max: 8, defaultValue: 1, required: true },
20
+ {
21
+ name: 'registrationType',
22
+ label: 'Registration Type',
23
+ type: 'radio',
24
+ options: ['Regular', 'Lateral', 'International'],
25
+ defaultValue: 'Regular'
26
+ }
27
+ ],
28
+ pricing: {
29
+ quantityField: 'semester',
30
+ quantityLabel: 'Semester',
31
+ tierField: 'registrationType',
32
+ tiers: {
33
+ Regular: 120,
34
+ Lateral: 180,
35
+ International: 450
36
+ },
37
+ fee: 30,
38
+ currency: 'USD',
39
+ chargeLabel: 'Enrollment Total'
40
+ }
41
+ };
42
+
43
+ export default studentRegistrationSystem;