diff --git a/app/(website)/about/page.tsx b/app/(website)/about/page.tsx index 2883a63..d00de08 100644 --- a/app/(website)/about/page.tsx +++ b/app/(website)/about/page.tsx @@ -48,31 +48,31 @@ const coreValues = [ icon: FaCheckCircle, title: "Service", description: - "Dedicated to providing outstanding service at every touchpoint, meeting the highest standards, and creating lasting impact for our clients.", + "We strive to elevate every experience — from client interactions to internal collaborations. With unwavering dedication, we deliver excellence that inspires growth, fosters partnerships, and creates a lasting, positive impact on everyone we touch.", }, { icon: FaHandshake, title: "Accountability", description: - "Taking ownership of our actions and delivering on promises with transparency. Our commitment fosters trust and ensures we consistently meet client expectations.", + "We embrace ownership with pride, holding ourselves and each other to the highest standards. Our transparency and commitment to our promises build the trust that strengthens relationships, propels progress, and empowers everyone to thrive.", }, { icon: FaHeart, title: "Passion", description: - "Driven by a passion for innovation, we embrace new ideas and technologies, constantly seeking ways to improve and deliver creative, boundary-pushing solutions.", + "Driven by a relentless passion for innovation, we embrace challenges as opportunities. We inspire creativity, ignite new ideas, and fuel transformation — always seeking to push the limits of what’s possible and make a difference in everything we do.", }, { icon: FaComments, title: "Communication", description: - "Clear, consistent, and proactive communication is central. We ensure all stakeholders are aligned, informed, and empowered, fostering collaboration.", + "Open, honest, and proactive communication is the bridge that connects us all. We believe in the power of dialogue to align, inspire, and drive collaboration — ensuring that every voice is heard and every idea has the opportunity to flourish.", }, { icon: FaShieldAlt, title: "Trust", description: - "Cultivating trust through ethical practices, honesty, and transparency. We uphold the highest integrity for long-term, mutually beneficial relationships.", + "At the heart of our work lies unwavering trust. Built on integrity, honesty, and respect, we nurture strong, meaningful relationships that create a foundation for long-term success — together, as partners, as a team, and as a community.", }, ]; @@ -168,20 +168,24 @@ export default function AboutUsPage() { by Purpose

- Expand on the founding story/motivation. E.g., Owethu Managed - Services was born from a clear vision: to harness the - transformative power of technology not just to solve problems, - but to proactively create opportunities for businesses to - thrive. We saw a need for a partner who truly understands both - technology's potential and the unique challenges modern - organizations face. + Owethu Managed Services wasn’t built in a boardroom — it was + born from a deeper calling: a desire to do more than simply + exist in the tech space. We set out to use innovation not as a + buzzword, but as a lifeline — pulling businesses out of + stagnation and into a future full of possibility. +

+

+ From day one, we’ve challenged the status quo. We don’t just fix + problems — we anticipate them, reimagine them, and turn them + into powerful stepping stones for growth. Our mission is simple: + break what seems impossible, and rebuild it into something + extraordinary.

- Elaborate on the journey. E.g., Our journey has been defined by - a relentless pursuit of knowledge, adaptation to the - ever-evolving tech landscape, and an unwavering commitment to - client success. This focus has established us as trusted - advisors and thought leaders in digital transformation. + Today, OMS is more than a service provider. We are trusted + digital transformation partners, creative problem-solvers, and + passionate believers in human-driven innovation. This isn’t just + business. This is our purpose.

@@ -223,10 +227,8 @@ export default function AboutUsPage() {

"To be global leaders in delivering cutting-edge IT - solutions, pushing the boundaries of what's possible, and - transforming industries for the better. We aim to empower - organisations to break through technological barriers and - achieve greater success." + solutions, pushing the boundaries of what's possible,and + transforming industries for the better."

{/* Mission Card */} @@ -242,12 +244,9 @@ export default function AboutUsPage() { Our Mission

- "We are dedicated to creating tailored, innovative - solutions that drive business success. By combining expertise - with cutting-edge technology, we solve complex problems and - enable our clients to achieve outstanding results. We partner - closely with clients to ensure every solution aligns with their - unique needs for long-term success." + "Our purpose is to help our clients drive transformative + growth and innovation to propel their business forward – + redefining whats possible."

@@ -300,9 +299,10 @@ export default function AboutUsPage() { Deep Domain Knowledge

- We combine broad technological capabilities with specialized - expertise across key industries, understanding the unique - challenges and opportunities within each sector. + Retail/E-commerce: Experience in building scalable e-commerce + platforms, optimizing digital customer journeys, enabling secure + payment integrations, and leveraging data analytics to drive + personalized shopping experiences and operational efficiency.

@@ -430,7 +430,7 @@ export default function AboutUsPage() {

We believe the best results come from true collaboration. We - invest time in understanding your culture, goals, and + invest time in understanding your culture, processes, goals, and challenges, working alongside your team as an extension of your own capabilities.

@@ -516,10 +516,11 @@ export default function AboutUsPage() {

Ultimately, our success is measured by yours. We are committed to - delivering solutions that not only meet technical requirements but - also drive efficiency, foster growth, enhance user experiences, and - provide a clear return on investment. Let's build a successful - future, together. + creating solutions that ignite momentum, unlock potential, and turn + ambition into achievement — empowering you to rise above challenges + and lead with confidence into the future. Together, let's build + a future where your success is not just a possibility, but a + reality.

{/* Optional CTA to contact */}
diff --git a/app/(website)/obse/page.tsx b/app/(website)/obse/page.tsx index d2fbc6b..a726aaf 100644 --- a/app/(website)/obse/page.tsx +++ b/app/(website)/obse/page.tsx @@ -39,7 +39,7 @@ export const metadata: Metadata = { description: "Revolutionize lending with OBSE: Automated bank statement data extraction, OCR, fraud detection, and analysis for South African financial institutions. Improve accuracy, speed, and decision-making.", keywords: [ - "Optimised Bank Statement Extractor", + "Optimized Bank Statement Extractor", "OBSE", "bank statement extraction", "OCR bank statements", @@ -110,16 +110,16 @@ const keyFeatures: FeatureItem[] = [ }, { icon: FaSearchDollar, - title: "Intelligent Income Detection", + title: "Intelligent Income & Salaried Detection", description: - "Identifies salaried/non-salaried income, provides explanations, and filters out transfers.", + "Accurately detects both salaried and non-salaried income, explains findings, and intelligently filters out internal transfers for clearer financial insights. ", }, { icon: FaFingerprint, title: "Enhanced Fraud Detection", description: "Detects document tampering, fraudulent insertions, and developing behavioral profiling.", - isComingSoon: true, + isComingSoon: false, }, { icon: FaSyncAlt, @@ -244,10 +244,11 @@ export default function ObsePage() { {/* Consider adding OMS Logo here */} {/* OMS Logo */}

- Revolutionize Your Lending and Credit Processes with OBSE + Revolutionize Your Lending + and Credit Processes with OBSE

Automate data extraction, enhance accuracy, detect fraud, and @@ -347,7 +348,7 @@ export default function ObsePage() { OBSE: Automated Accuracy, Speed, and Insight

- Optimised Bank Statement Extractor (OBSE) is an advanced OCR and + Optimized Bank Statement Extractor (OBSE) is an advanced OCR and data aggregation platform designed specifically for the South African financial landscape. It seamlessly extracts comprehensive, accurate data from any bank statement (individual @@ -691,10 +692,10 @@ export default function ObsePage() {

- {/* 11. About OMS Section (Brief) */} + {/* 11. About OMS Section (Brief)
- {/* Optional: OMS Logo */} + { Optional: OMS Logo }

Your Experienced Partner in Financial Technology

@@ -714,6 +715,7 @@ export default function ObsePage() {
+ /} {/* 12. Call to Action (CTA) Section */}
{/* 13. Contact Information Section */} + {/*}
@@ -767,7 +770,10 @@ export default function ObsePage() {

- {/* Contact Details */} + { -----Contact Details */} + + {/* Optional: Add a contact form component here if available --- +
- {/* Optional: Link to main contact page */} + + {--- Optional: Link to main contact page */} + {/* --- comment out if not needed}
+ */} - {/* Optional: Simple Contact Form (if ContactForm component is not used/available) */} - {/*
+ {/* Optional: Simple Contact Form (if ContactForm component is not used/available) */} + {/*
@@ -832,7 +841,7 @@ export default function ObsePage() { */} - {/* OR Use the ContactForm Component */} + {/* OR Use the ContactForm Component

Send a Quick Inquiry @@ -842,6 +851,9 @@ export default function ObsePage() {

+ */} + + {/* 14. Footer Section */}
); } diff --git a/app/(website)/page.tsx b/app/(website)/page.tsx index 56e3af1..5cbce56 100644 --- a/app/(website)/page.tsx +++ b/app/(website)/page.tsx @@ -58,7 +58,7 @@ export default async function HomePage() { eyebrow="Featured Product" title="Streamline Financial Analysis with" productName="OBSE" - description="Our advanced Optimised Bank Statement Extractor automates data aggregation, reduces errors, and provides deep financial insights." + description="Our advanced Optimized Bank Statement Extractor automates data aggregation, reduces errors, and provides deep financial insights." features={defaultObseFeatures} buttonText="Learn More & Demo" buttonHref="/products/obse" // Link to the OBSE product page diff --git a/app/(website)/services/product-development/page.tsx b/app/(website)/services/product-development/page.tsx new file mode 100644 index 0000000..fbf7749 --- /dev/null +++ b/app/(website)/services/product-development/page.tsx @@ -0,0 +1,597 @@ +import Link from "next/link"; +import { Metadata } from "next"; +import { + FaArrowRight, + FaDraftingCompass, + FaHandshake, + FaHeadset, + FaLaptopCode, // For Web App Dev, Backend + FaLightbulb, // For Ideation, Innovation + FaPuzzlePiece, // For Custom Software Solutions + FaRocket, // For Product Launch, Scalable Tech + FaSearch, // For User Research + FaShieldAlt, // For Security Testing + FaSyncAlt, // For Agile, Iteration + FaUserCheck, // For User-Centred Design, Usability Testing + FaUsersCog, // For Dedicated Teams + // Additional icons that might be useful for the new content: + FaMobileAlt, // For Mobile Apps + FaDesktop, // For Desktop Apps + FaBrain, // For AI & ML + FaCubes, // For Blockchain (alternative: FaLink) + FaNetworkWired, // For IoT (alternative: FaBroadcastTower) + FaBullseye, // For Market Strategy + FaChartLine, // For Growth/Scalability + FaTasks, // For QA + FaComments, // For Feedback + FaPhone, + FaEnvelope, +} from "react-icons/fa"; +import { COLORS } from "@/constants"; +import ContactForm from "@/components/ContactForm"; + +// SEO Metadata +export const metadata: Metadata = { + title: "Product Development Services | Digital Solutions by OMS", + description: + "OMS delivers innovative, tailored digital solutions. Explore our end-to-end product development services, from ideation to launch and beyond.", + keywords: [ + "product development", + "custom software solutions", + "user-centred design", + "agile development", + "cross-platform solutions", + "mobile app development", + "web app development", + "tech stack", + "quality assurance", + "OMS", + "Owethu Management Services", + ], + openGraph: { + title: "Product Development Services | Digital Solutions by OMS", + description: + "Transform your ideas into market-ready products with OMS's comprehensive development expertise.", + url: "https://www.oms.africa/services/product-development", // Replace with your actual URL + images: [ + { + url: "/images/product-dev-og-image.png", // Replace with an appropriate OG image URL + width: 1200, + height: 630, + alt: "OMS Product Development Services", + }, + ], + locale: "en_ZA", + type: "website", + }, + twitter: { + card: "summary_large_image", + title: "Product Development Services | Digital Solutions by OMS", + description: + "Build innovative digital products with OMS. We cover the full lifecycle from concept to continuous improvement.", + // images: ['/images/product-dev-twitter-image.png'], // Replace if needed + }, +}; + +interface FeatureItem { + icon?: React.ElementType; // Icon is optional for some lists like tech stack + title: string; + description: string; +} + +const SectionTitle: React.FC<{ children: React.ReactNode }> = ({ + children, +}) => ( +

+ {children} +

+); + +const SectionParagraph: React.FC<{ children: React.ReactNode }> = ({ + children, +}) => ( +

+ {children} +

+); + +const FeatureGrid: React.FC<{ items: FeatureItem[]; iconColor?: string }> = ({ + items, + iconColor = COLORS.primary, +}) => ( +
+ {items.map((item) => ( +
+ {item.icon && ( + + )} +

+ {item.title} +

+

+ {item.description} +

+
+ ))} +
+); + +export default function ProductDevelopmentPage() { + const howOmsDeliversItems: FeatureItem[] = [ + { + icon: FaPuzzlePiece, + title: "Custom Software Solutions", + description: + "We craft bespoke applications designed to solve your unique business challenges, ensuring alignment with your goals and processes.", + }, + { + icon: FaUserCheck, + title: "User-Centred Design", + description: + "We prioritise seamless functionality with an intuitive user experience, creating products that are not only powerful but also easy to use.", + }, + { + icon: FaRocket, + title: "Scalable & Future-Proof Technology", + description: + "Our solutions are built with long-term growth in mind, ensuring adaptability to future demands and changes in technology.", + }, + { + icon: FaSyncAlt, + title: "Agile Development Approach", + description: + "Through iterative development, we ensure faster time-to-market, with continuous feedback from users driving improvements along the way.", + }, + ]; + + const endToEndItems: FeatureItem[] = [ + { + icon: FaLightbulb, + title: "Ideation & Concept Development", + description: + "We collaborate with you to transform your ideas into a clear product vision and roadmap.", + }, + { + icon: FaDraftingCompass, + title: "Prototyping & MVP Development", + description: + "We build prototypes and minimum viable products to validate concepts early, gather feedback, and ensure alignment with user needs.", + }, + { + icon: FaBullseye, + title: "Product Launch & Market Strategy", + description: + "Our team helps with the go-to-market strategy, ensuring a successful product launch with strong market positioning and customer adoption.", + }, + { + icon: FaHeadset, + title: "Post-Launch Support & Continuous Improvement", + description: + "We provide ongoing support, monitoring, and iterative enhancements based on user feedback and market trends.", + }, + ]; + + const crossPlatformItems: FeatureItem[] = [ + { + icon: FaMobileAlt, + title: "Mobile Application Development", + description: + "We create intuitive mobile apps for both iOS and Android, ensuring seamless performance and a high-quality user experience.", + }, + { + icon: FaLaptopCode, + title: "Web Application Development", + description: + "Tailored web applications that are scalable, secure, and optimized for the best user interaction.", + }, + { + icon: FaDesktop, + title: "Desktop Applications", + description: + "For businesses requiring more complex or resource-heavy solutions, we build powerful desktop applications with smooth integration.", + }, + ]; + + const techStackItems: FeatureItem[] = [ + { title: "Frontend Development", description: "React, Angular, Vue.js" }, + { + title: "Backend Development", + description: "Node.js, Python, Java, Ruby on Rails", + }, + { + title: "Database Technologies", + description: "MySQL, PostgreSQL, MongoDB, NoSQL", + }, + { + title: "Cloud Services & DevOps", + description: "AWS, Azure, Google Cloud Platform", + }, + { + title: "AI & Machine Learning", + description: "TensorFlow, PyTorch, Scikit-learn", + }, + ]; + + const qualityAssuranceItems: FeatureItem[] = [ + { + icon: FaTasks, + title: "Manual & Automated Testing", + description: + "Comprehensive testing to ensure the product meets all requirements and functions seamlessly.", + }, + { + icon: FaChartLine, // Or FaTachometerAlt if you add it + title: "Performance & Load Testing", + description: + "We simulate high traffic and performance scenarios to ensure your product can scale and handle user demands.", + }, + { + icon: FaShieldAlt, + title: "Security Testing", + description: + "Proactive identification and mitigation of potential security vulnerabilities to safeguard your product and user data.", + }, + ]; + + const collaborativeProcessItems: FeatureItem[] = [ + { + icon: FaSyncAlt, + title: "Agile Methodology", + description: + "Our flexible and iterative approach ensures that your product evolves based on real-time feedback, reducing risk and accelerating time-to-market.", + }, + { + icon: FaHandshake, + title: "Client Involvement", + description: + "Regular check-ins, demos, and sprint reviews keep you involved and aligned with project progress, making sure we are building the product you envisioned.", + }, + { + icon: FaUsersCog, + title: "Dedicated Development Teams", + description: + "Our dedicated teams work closely with your business to ensure that every decision aligns with your strategic goals and product vision.", + }, + ]; + + const userCentredApproachItems: FeatureItem[] = [ + { + icon: FaSearch, + title: "User Research & Personas", + description: + "We conduct thorough user research to understand the needs, behaviours, and challenges of your target audience.", + }, + { + icon: FaUserCheck, + title: "Usability Testing", + description: + "Regular usability tests are conducted to ensure that your product is easy to navigate, efficient, and enjoyable to use.", + }, + { + icon: FaComments, + title: "User Feedback & Iteration", + description: + "We continuously gather user feedback and iterate on product features to improve usability and customer satisfaction.", + }, + ]; + + const innovationItems: FeatureItem[] = [ + { + icon: FaBrain, + title: "Artificial Intelligence & Machine Learning", + description: + "We integrate AI and machine learning to create smarter, data-driven products that can adapt and scale as user needs evolve.", + }, + { + icon: FaCubes, + title: "Blockchain Solutions", + description: + "We incorporate blockchain for secure, transparent, and decentralized applications.", + }, + { + icon: FaNetworkWired, + title: "Internet of Things (IoT)", + description: + "We build IoT-enabled products that connect the physical and digital worlds for enhanced business intelligence and automation.", + }, + ]; + + return ( +
+ {/* 1. Hero Section */} +
+
+
+

+ Product Development +

+

+ At OMS, we don't just create products—we build digital solutions + that accelerate business growth and transform industries. We + understand that great products are the result of careful planning, + technical expertise, and a deep understanding of user needs. From + concept to launch, our product development services deliver + innovative, tailored solutions that help businesses enhance + efficiency, reduce complexity, and unlock new revenue streams. +

+
+ + How We Deliver + + + Discuss Your Project + +
+
+
+ + {/* 2. How OMS Delivers Market-Ready Products Section */} +
+
+ How OMS Delivers Market-Ready Products + {/* No intro paragraph provided for this specific subtitle in the source */} +
+ {howOmsDeliversItems.map((item) => ( +
+ {item.icon && ( + + )} +
+

+ {item.title} +

+

+ {item.description} +

+
+
+ ))} +
+
+
+ + {/* 3. End-to-End Product Development Section */} +
+
+ End-to-End Product Development + + We support businesses throughout the entire product lifecycle, from + ideation to post-launch support. Our comprehensive services cover + every phase of development, ensuring that your product is not only + designed and built to meet your current needs, but is also ready for + future growth and evolution. + + +
+
+ + {/* 4. Cross-Platform Solutions Section */} +
+
+ Cross-Platform Solutions + + We deliver cross-platform products that work seamlessly across web, + mobile, and desktop environments. This ensures your product is + accessible to a wider audience and provides a consistent user + experience, regardless of the device or platform. + + +
+
+ + {/* 5. Tech Stack Expertise Section */} +
+
+ Tech Stack Expertise + + Our product development solutions are powered by a diverse range of + technologies. Whether you need a high-performance web app, a mobile + solution, or a complex enterprise application, our team uses the + latest and most suitable technologies to ensure the product is + reliable, secure, and future-ready. + +
+ {techStackItems.map((item) => ( +
+

+ {item.title} +

+

+ {item.description} +

+
+ ))} +
+
+
+ + {/* 6. Quality Assurance & Testing Section */} +
+
+ Quality Assurance & Testing + + Our product development approach includes robust testing and quality + assurance to ensure that your product is error-free, secure, and + optimized for performance. We conduct thorough testing at each stage + of the development process to deliver a high-quality final product. + + +
+
+ + {/* 7. Collaborative Development Process Section */} +
+
+ Collaborative Development Process + + We believe that collaboration is key to successful product + development. Our agile and transparent development process ensures + that you are always in the loop, from initial discussions to final + delivery. + + +
+
+ + {/* 8. User-Centred Approach Section */} +
+
+ User-Centred Approach + + We design products with the end-user in mind, focusing on creating + intuitive, engaging, and valuable experiences that delight customers + and drive retention. + + +
+
+ + {/* 9. Innovation & Emerging Technologies Section */} +
+
+ Innovation & Emerging Technologies + + At OMS, we believe in staying ahead of the curve by leveraging the + latest innovations and emerging technologies to build + next-generation products. We are constantly exploring new ways to + incorporate cutting-edge solutions into our product development + process. + + +
+
+ + {/* 10. Call to Action (CTA) Section */} +
+
+

+ Ready to Transform Your Ideas into Reality? +

+

+ Let's discuss your product vision and explore how OMS can + develop innovative digital solutions to drive your business forward. + Schedule a consultation with our experts today. +

+
+ + Request a Consultation + + + Contact Us + +
+
+
+ + {/* 11. Contact Information Section */} +
+
+
+

+ Get in Touch +

+

+ Have a project in mind or need more information about our product + development services? Reach out today. +

+
+
+ {/* Contact Details */} +
+
+ +
+

+ Phone +

+ + (012) 051 3281 + +
+
+
+ +
+

+ Email +

+ + info@oms.africa + +
+
+ + Go to Full Contact Page + +
+ + {/* Contact Form */} +
+

+ Send Us Your Inquiry +

+ +
+
+
+
+
+ ); +} diff --git a/app/(website)/services/resource-augmentation/page.tsx b/app/(website)/services/resource-augmentation/page.tsx index d0cf95c..f84981c 100644 --- a/app/(website)/services/resource-augmentation/page.tsx +++ b/app/(website)/services/resource-augmentation/page.tsx @@ -22,15 +22,12 @@ import { FaUsers, // For Teams/Resources FaChartLine, // For Reporting/MI FaLightbulb, // For Innovation/Solutions - FaPhone, // Contact - FaEnvelope, // Contact FaTools, // General Capabilities FaLayerGroup, // Frameworks (SAFe, etc.) FaFileInvoiceDollar, // Cost/Pricing FaBusinessTime, // Experience/Past Projects } from "react-icons/fa"; import { COLORS } from "@/constants"; // Assuming COLORS constant is available -import ContactForm from "@/components/ContactForm"; // Assuming ContactForm is available // SEO Metadata export const metadata: Metadata = { @@ -49,7 +46,7 @@ export const metadata: Metadata = { "UX/UI Designer", "Process Engineer", "Salesforce Partner", - "time and material IT", + // "time and material IT", "milestone-based projects", "IT outsourcing", "flexible IT resources", @@ -98,7 +95,7 @@ interface ServiceModel { const serviceModels: ServiceModel[] = [ { icon: FaClock, - title: "Resource Augmentation Model (Time & Material)", + title: "Resource Augmentation Model", description: "Access skilled IT professionals on demand to supplement your existing team.", details: [ @@ -111,15 +108,14 @@ const serviceModels: ServiceModel[] = [ }, { icon: FaTasks, - title: "Milestone-Based Model (Managed Service)", + title: "Milestone-Based Model", description: "OMS takes full responsibility for delivering specific IT project phases or entire projects.", details: [ "Includes Project Planning & Management.", - "Covers End-to-end Process Design (Requirements, BPD, Arch, UX/UI).", - "Includes Data & MI Design (Architecture, Transformation, BI).", - "Comprehensive Testing & QA (Strategy, Implementation, Management).", - "OMS manages all deployed team members, deliverables, and velocity.", + "Covers End-to-end Process Design (Requirements, Business Process Design, Architecture, User Experience/User Interface, Data Architecture, Transformation, and Business Intelligence).", + "Change Management & Training ", + "Comprehensive Testing and Quality Assurance.", ], pricingModel: "Milestone-Based pricing, payable on delivery of key milestones.", @@ -384,10 +380,11 @@ export default function ResourceAugmentationPage() { {/* Consider adding OMS Logo here if desired */} {/* OMS Logo */}

- Flexible IT Resource Augmentation & Managed Services + Flexible IT Resource
+ Augmentation & Managed Services

Scale your IT capabilities effectively with Owethu Managed Services. @@ -487,7 +484,7 @@ export default function ResourceAugmentationPage() { Your Strategic Partner for IT Talent

- Owethu Managed Services (OMS) provides high-caliber IT + Owethu Managed Services provides high-caliber IT professionals through flexible engagement models tailored to your specific project requirements and business objectives. As a 100% Black female-owned organization based in Centurion, @@ -553,7 +550,7 @@ export default function ResourceAugmentationPage() { {model.title} -

+

{model.description}

+ {/* Add the sentence as a separate paragraph for the Milestone model */} + {model.title === "Milestone-Based Model" && ( +

+ OMS manages all deployed team members, deliverables, and + velocity. +

+ )}

{model.pricingModel}

))} -

- OMS operates using both AGILE{" "} - and Waterfall Frameworks, - depending on client preference and project suitability. -

@@ -704,8 +703,10 @@ export default function ResourceAugmentationPage() { Financial Services & Compliance

- FIC/KYC Remediation (Data Architecture, MI), Core Banking - Systems, Lending/Credit Process Optimisation. + Expertise in FIC/KYC remediation, including data architecture + and management information design, as well as core banking + systems and end-to-end optimisation of lending and credit + processes.

@@ -717,8 +718,9 @@ export default function ResourceAugmentationPage() { Customer Management & Onboarding

- Design, Testing, Requirements, Process Engineering, UX/UI for - customer-facing platforms. + Crafting seamless, data-driven onboarding experiences through + straight-through processing, enhanced customer journeys,
+ real-time insights, and a 360-degree customer view.

@@ -730,8 +732,10 @@ export default function ResourceAugmentationPage() { Platform & Process Automation

- Straight-Through Processing (STP) on Banking Platforms, API - Integration, Salesforce implementations. + Specialising in Straight-Through Processing (STP) for banking + platforms, seamless API integration, and end-to-end Salesforce + implementations to drive efficiency and reduce manual + intervention.

@@ -831,100 +835,6 @@ export default function ResourceAugmentationPage() { - - {/* 11. Contact Information Section */} -
-
-
-

- Get in Touch -

-

- We're ready to assist you. Reach out via phone, email, or use - the form below to start the conversation about your IT resource - needs. -

-
-
- {/* Contact Details */} -
-

- Contact Information -

-
- -
-

- Phone -

- {/* Using specific numbers from PDF */} - - Zanele: (012) 051 3281 - - - Lindiwe: (012) 051 3282 - -
-
-
- -
-

- Email -

- {/* Using specific emails from PDF */} - - Zanelem@oms.africa - - - Lindiwes@oms.africa - - - admin@oms.africa (General) - -
-
- {/* Optional: Link to main contact page */} - - Go to Full Contact Page - -
- - {/* Contact Form */} -
-

- Send a Quick Inquiry -

- {/* Reuse your existing contact form */} -
-
-
-
); } diff --git a/components/Footer.tsx b/components/Footer.tsx index 393ce5b..fe22f5f 100644 --- a/components/Footer.tsx +++ b/components/Footer.tsx @@ -157,20 +157,44 @@ const Footer = () => {

{/* Input needs dark background styles */} - - {/* Keep button styling primary */} - +
+ + +
{/* Badges - Use a subtle dark bg */}
diff --git a/components/Header.tsx b/components/Header.tsx index 636715a..9e4eae8 100644 --- a/components/Header.tsx +++ b/components/Header.tsx @@ -1,22 +1,13 @@ // components/Header.tsx (Server Component) import React from "react"; -import { auth } from "@/auth"; // Only need auth (for session) from here now import HeaderClient from "./HeaderClient"; -import { handleSignInAction, handleSignOutAction } from "@/actions/auth-action"; const Header = async () => { // Fetch session data on the server - const session = await auth(); // Pass the session data and YOUR Server Actions as props - return ( - - ); + return ; }; export default Header; diff --git a/components/HeaderClient.tsx b/components/HeaderClient.tsx index 7402936..a7e905f 100644 --- a/components/HeaderClient.tsx +++ b/components/HeaderClient.tsx @@ -4,53 +4,24 @@ import React, { useState } from "react"; import Link from "next/link"; import Image from "next/image"; +import { usePathname } from "next/navigation"; // Import usePathname import { FiChevronDown, FiClipboard, FiArrowRight, FiMenu, FiX, - FiLogIn, - FiUsers, // Resource Augmentation - FiBriefcase, // Project Management - FiCpu, // Product Development - FiBox, // OBSE - FiFileText, // Vacancies - FiUserCheck, // Recruitment Portal + FiUsers, + FiBriefcase, + FiCpu, + FiBox, + FiFileText, + FiUserCheck, } from "react-icons/fi"; import ThemeToggle from "./ThemeToggle"; -import type { Session } from "@auth/core/types"; const omsLogoUrl = "/oms-logo.svg"; -type DropdownMenuProps = { - trigger: React.ReactNode; - children: React.ReactNode; - menuClasses?: string; -}; -const DropdownMenu = ({ - trigger, - children, - menuClasses = "w-48", -}: DropdownMenuProps) => ( -
- -
-
{children}
-
-
-); - type DropdownLinkProps = { href: string; children: React.ReactNode; @@ -66,34 +37,50 @@ const DropdownLink = ({ href, children, onClick }: DropdownLinkProps) => ( ); -type HeaderClientProps = { - session: Session | null; - handleSignIn: () => void; - handleSignOut: () => void; -}; - -const HeaderClient = ({ - session, - handleSignIn, - handleSignOut, -}: HeaderClientProps) => { +const HeaderClient = () => { const [isMenuOpen, setIsMenuOpen] = useState(false); const toggleMenu = () => setIsMenuOpen((open) => !open); const handleMobileLinkClick = () => setIsMenuOpen(false); + const [servicesDropdownOpen, setServicesDropdownOpen] = useState(false); + const [productsDropdownOpen, setProductsDropdownOpen] = useState(false); + const [joinUsDropdownOpen, setJoinUsDropdownOpen] = useState(false); + + const handleServicesMouseEnter = () => setServicesDropdownOpen(true); + const handleServicesMouseLeave = () => setServicesDropdownOpen(false); + + const handleProductsMouseEnter = () => setProductsDropdownOpen(true); + const handleProductsMouseLeave = () => setProductsDropdownOpen(false); + + const handleJoinUsMouseEnter = () => setJoinUsDropdownOpen(true); + const handleJoinUsMouseLeave = () => setJoinUsDropdownOpen(false); + + const pathname = usePathname(); // Get current path + + // Helper function to check if a path is active (exact match for simple links, startsWith for base paths) + const isActive = (href: string, exact = false) => { + if (exact) { + return pathname === href; + } + // Handle root path specifically + if (href === "/") { + return pathname === "/"; + } + return pathname.startsWith(href); + }; + const megaMenuTriggerClasses = ` - relative inline-flex items-center text-sm font-medium text-primary-foreground group + relative inline-flex items-center text-sm font-medium text-primary-foreground hover:opacity-90 transition-opacity duration-150 ease-in-out pb-1 after:content-[''] after:absolute after:left-0 after:bottom-0 after:h-[2px] after:w-0 after:bg-primary-foreground/80 after:transition-all after:duration-300 after:ease-out - group-hover:after:w-full group-focus-within:after:w-full `; const megaMenuItemClasses = ` flex items-center p-3 -m-3 rounded-lg - hover:bg-secondary transition-colors duration-150 ease-in-out group + hover:bg-secondary transition-colors duration-150 ease-in-out `; - const megaMenuIconClasses = `flex-shrink-0 h-6 w-6 text-primary group-hover:text-primary-focus mr-4`; + const megaMenuIconClasses = `flex-shrink-0 h-6 w-6 text-primary mr-4`; const megaMenuTextWrapperClasses = `text-sm`; const megaMenuTitleClasses = `font-semibold text-card-foreground`; @@ -122,25 +109,41 @@ const HeaderClient = ({
- } - > - - - ) : ( - - )}
@@ -217,144 +184,230 @@ const HeaderClient = ({
- - {/* ← Here’s the Explore Our Offerings link, back in its original spot */} - - Explore Our Offerings - - + {/* ← Here’s the Explore Our Offerings link, back in its original spot */} + + Explore Our Offerings + + +
{" "} + {/* Close the new flex container */}
@@ -424,29 +477,7 @@ const HeaderClient = ({ Request OBSE Demo -
- {session?.user ? ( - - ) : ( - - )} -
+
diff --git a/oms-website.code-workspace b/oms-website.code-workspace new file mode 100644 index 0000000..ef9f5d2 --- /dev/null +++ b/oms-website.code-workspace @@ -0,0 +1,7 @@ +{ + "folders": [ + { + "path": "." + } + ] +} \ No newline at end of file