DEV Community

Kgothatso Ntsane
Kgothatso Ntsane

Posted on

How I Built and Launched My Portfolio Project: AgencyCentral

๐Ÿš€ Introduction

AGENCY CENTRAL

AgencyCentral is a centralized workflow tool designed to amplify growth by streamlining project management processes. The entire project was developed by me, Kgothatso Ntsane, wearing many hats from front-end development, back-end development, DevOps, SRE along with project management ๐Ÿ› ๏ธ. The idea behind this project stemmed from a desire to offer small to medium-sized digital agencies a seamless way to manage their clients, payments, and projects from a single dashboard ๐Ÿ–ฅ๏ธ.

The project timeline spanned over three weeks โณ, with the main goal of optimizing efficiency and scalability. My personal focus? Ensuring a clean user experience while integrating complex tools like Stripe, Clerk, and UploadThing โš™๏ธ.

๐Ÿ’ญ Why I Chose This Project

Running a digital agency has given me unique insights into the challenges and opportunities faced by businesses in the digital age๐Ÿ’ก. My journey into this project stems from my desire to address a fundamental issue I frequently encountered: the need for an all-in-one solution that simplifies and enhances workflow management.

As an agency owner in the digital age, I often see clients struggling with fragmented tools and inefficient processes. I realized that creating a platform that centralizes these functions would not only improve my own agencyโ€™s operations but could also help other businesses overcome similar challenges๐Ÿ’ป. This project became a personal mission to solve a real-world problem of my own and deliver tangible value to my clients and peers.

๐Ÿ—๏ธ What Iโ€™ve Accomplished

Iโ€™m proud to say AgencyCentral came to life as planned ๐ŸŽ‰. The platform centralizes project management with features like client dashboards, task notifications, and payment processing via Stripe ๐Ÿ’ธ. Hereโ€™s a breakdown of some of the key components:

  • Backend: Built using Node.js and Prisma to manage the database. The decision to use Prisma was driven by its simplicity and flexibility in managing complex data relationships ๐Ÿ› ๏ธ.
  • Frontend: Powered by Next.js and Tailwind CSS. These tools ensured a smooth, responsive interface across devices, making the platform user-friendly for both desktop and mobile ๐Ÿ“ฑ.

Key Features:

  • Project Dashboard โ€“ Track tasks, notifications, and payments in one place ๐Ÿ—‚๏ธ.
  • Stripe Integration โ€“ A robust payment system that handles client payments seamlessly ๐Ÿ’ต.
  • Mobile Responsiveness โ€“ Users can access the platform from their phones without compromising functionality ๐Ÿ“ฒ.

Below is the architecture diagram showing the flow of data between the frontend, backend, and external services like Stripe.

AGENCY CENTRAL ARCHITECTURE

๐Ÿ”ง My Most Difficult Technical Challenge

One of the toughest challenges I faced was integrating Stripe Connect for multi-party payments ๐Ÿ’ณ. The problem was complex: I had to create a system that could manage payments for multiple clients while adhering to security protocols.

The Situation was clear โ€“ businesses using AgencyCentral needed a way to securely receive payments from clients without manually handling transactions. My Task was to integrate Stripeโ€™s multi-party payment system, but I quickly realized that properly configuring the OAuth flow and SSL setup was crucial.

I took Action by diving deep into the Stripe API documentation ๐Ÿ“‘. After several failed attempts to authenticate payment tokens, I eventually identified a missing parameter in the API call that was breaking the flow. With the deadline looming ๐Ÿ˜ฐ, I managed to solve the issue by rewriting the authorization logic.

The Result? A fully functioning, secure payment integration that handles transactions reliably ๐ŸŽฏ.

๐Ÿ“š What I Learned

This project has been a treasure trove of valuable insights and experiences. Hereโ€™s a comprehensive breakdown of what Iโ€™ve learned:

๐Ÿ› ๏ธ Technical Takeaways

  1. API Mastery: Diving into complex APIs, like Stripe, was a challenging yet rewarding experience. Iโ€™ve become adept at integrating and managing these systems, which is crucial for building scalable and functional applications. This skill is a game-changer for future projects that involve financial transactions or third-party integrations.

  2. Next.js and TypeScript: Managing and deploying large-scale applications with Next.js and TypeScript has been enlightening. Iโ€™ve learned the nuances of optimizing performance, handling server-side rendering, and ensuring type safety across the project. This knowledge will undoubtedly influence how I approach future projects, making me more efficient and effective.

  3. Resilience and Problem-Solving: This project tested my perseverance. When faced with obstacles, I learned the value of persistence and the importance of seeking help when needed. My problem-solving skills have significantly improved, as Iโ€™ve become more adept at diagnosing issues and finding solutions.

๐Ÿ”„ What I Might Do Differently

Reflecting on the project, there are a few things Iโ€™d approach differently:

  • Early Planning: Investing more time in planning the projectโ€™s architecture from the outset would have streamlined the development process and avoided some of the challenges encountered later.

  • Documentation: Improving the documentation and maintaining consistent updates throughout the development would facilitate easier onboarding for future contributors and reduce the learning curve.

๐Ÿง  Self-Discovery as an Engineer

Through this project, Iโ€™ve discovered several aspects about myself as an engineer:

  • Adaptability: Iโ€™ve learned to adapt quickly to new technologies and frameworks, which has broadened my skill set and prepared me for diverse challenges.

  • Patience and Persistence: The project reinforced the importance of patience and persistence. Debugging complex issues taught me to approach problems methodically and to remain calm under pressure.

๐Ÿ”ฎ Future Path and Beliefs

This project has significantly shaped my future engineering path:

  • Embracing New Tools: Iโ€™ve become more open to exploring new tools and methodologies. For example, experimenting with Next.js and TypeScript has demonstrated their effectiveness and potential, which has altered my perspective on traditional development approaches.

  • Continuous Learning: Iโ€™ve realized that staying updated with emerging technologies and continuously learning is crucial for growth. This mindset will guide my approach to future projects and career development.

Looking forward, Iโ€™m eager to leverage these insights in future endeavors, especially when it comes to tackling API integrations and scaling platforms. This project has been a transformative experience, and Iโ€™m excited about applying these lessons to new challenges. ๐ŸŒŸ

๐Ÿ‘ค About Me

Hi, Iโ€™m Kgothatso Ntsane, a full-stack developer passionate about building tools that simplify workflows and help businesses grow ๐Ÿš€. Check out the project and my profiles below:

[- Project Landing Page ๐Ÿ“Š]
[- Deployed Project ๐ŸŒ]
[- GitHub Repository ๐Ÿ”—]
[- LinkedIn Profile ๐Ÿ’ผ]

Top comments (0)