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.
- package/App.jsx +95 -0
- package/README.md +92 -0
- package/components/layout/PortalHeader.jsx +18 -0
- package/components/layout/SystemSidebar.jsx +33 -0
- package/components/modules/AnalyticsDashboardModule.jsx +17 -0
- package/components/modules/ChatMessagingModule.jsx +17 -0
- package/components/modules/EcommerceStoreModule.jsx +17 -0
- package/components/modules/EventTicketBookingModule.jsx +17 -0
- package/components/modules/FlightBookingModule.jsx +17 -0
- package/components/modules/FoodOrderingModule.jsx +17 -0
- package/components/modules/HospitalAppointmentModule.jsx +17 -0
- package/components/modules/HotelBookingModule.jsx +17 -0
- package/components/modules/InvoiceBillingModule.jsx +17 -0
- package/components/modules/LibraryManagementModule.jsx +17 -0
- package/components/modules/ModuleContentDeck.jsx +44 -0
- package/components/modules/MovieBookingModule.jsx +17 -0
- package/components/modules/QuizExamModule.jsx +17 -0
- package/components/modules/StudentRegistrationModule.jsx +17 -0
- package/components/modules/SystemModuleRenderer.jsx +19 -0
- package/components/modules/SystemModuleTemplate.jsx +62 -0
- package/components/modules/SystemVisualWidget.jsx +123 -0
- package/components/modules/moduleContentMap.js +238 -0
- package/components/modules/moduleEnhancementsMap.js +439 -0
- package/components/modules/systemModuleMap.js +31 -0
- package/components/system/DynamicSystemForm.jsx +154 -0
- package/components/system/SystemHero.jsx +21 -0
- package/components/system/SystemSummaryCard.jsx +53 -0
- package/data/systems/analyticsDashboard.js +48 -0
- package/data/systems/chatMessaging.js +43 -0
- package/data/systems/ecommerceStore.js +50 -0
- package/data/systems/eventTicketBooking.js +50 -0
- package/data/systems/flightBooking.js +38 -0
- package/data/systems/foodOrdering.js +48 -0
- package/data/systems/hospitalAppointment.js +50 -0
- package/data/systems/hotelBooking.js +38 -0
- package/data/systems/index.js +31 -0
- package/data/systems/invoiceBilling.js +50 -0
- package/data/systems/libraryManagement.js +43 -0
- package/data/systems/movieBooking.js +48 -0
- package/data/systems/quizExam.js +38 -0
- package/data/systems/studentRegistration.js +43 -0
- package/dist/popsite-ui.es.js +4368 -0
- package/dist/popsite-ui.umd.js +60 -0
- package/dist/style.css +1 -0
- package/index.html +13 -0
- package/library/index.js +20 -0
- package/main.jsx +15 -0
- package/package.json +40 -0
- package/src/App.jsx +12 -0
- package/src/components/modules/AnalyticsDashboardModule.jsx +224 -0
- package/src/components/modules/ChatMessagingModule.jsx +294 -0
- package/src/components/modules/EcommerceStoreModule.jsx +405 -0
- package/src/components/modules/EventTicketBookingModule.jsx +253 -0
- package/src/components/modules/FlightBookingModule.jsx +399 -0
- package/src/components/modules/FoodOrderingModule.jsx +316 -0
- package/src/components/modules/HospitalAppointmentModule.jsx +267 -0
- package/src/components/modules/HotelBookingModule.jsx +317 -0
- package/src/components/modules/InvoiceBillingModule.jsx +302 -0
- package/src/components/modules/LandingPageModule.jsx +185 -0
- package/src/components/modules/LibraryManagementModule.jsx +189 -0
- package/src/components/modules/MovieBookingModule.jsx +337 -0
- package/src/components/modules/QuizExamModule.jsx +255 -0
- package/src/components/modules/StudentRegistrationModule.jsx +292 -0
- package/src/components/system/SystemHero.jsx +44 -0
- package/src/components/system/SystemSummaryCard.jsx +29 -0
- package/src/components/system/Toast.jsx +69 -0
- package/src/data/systems/analyticsDashboard.js +32 -0
- package/src/data/systems/chatMessaging.js +59 -0
- package/src/data/systems/ecommerceStore.js +84 -0
- package/src/data/systems/eventBooking.js +33 -0
- package/src/data/systems/flightBooking.js +59 -0
- package/src/data/systems/foodOrdering.js +48 -0
- package/src/data/systems/hospitalAppointment.js +48 -0
- package/src/data/systems/hotelBooking.js +59 -0
- package/src/data/systems/invoiceBilling.js +19 -0
- package/src/data/systems/landingPage.js +29 -0
- package/src/data/systems/libraryManagement.js +17 -0
- package/src/data/systems/movieBooking.js +49 -0
- package/src/data/systems/quizExam.js +31 -0
- package/src/data/systems/studentRegistration.js +9 -0
- package/src/index.js +22 -0
- package/src/main.jsx +10 -0
- package/src/styles.css +296 -0
- package/styles.css +820 -0
- package/utils/systemEngine.js +128 -0
- package/vite.config.js +8 -0
- 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;
|