Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DukanKonnect - Spring Boot Backend

DukanKonnect is a comprehensive service booking application designed to seamlessly connect local vendors and service providers with customers. This repository contains the backend infrastructure that powers the DukanKonnect client applications.

Built with Spring Boot, this backend provides robust, scalable APIs for the client applications, handling everything from user authentication and service discovery to booking management and notifications.


Key Features

  • Custom Authentication: Secure, stateless user authentication and authorization using JSON Web Tokens (JWT) integrated with Spring Security.
  • Service Management: RESTful APIs for creating, browsing, and managing local services, vendors, and service categories.
  • Booking Workflow: Comprehensive endpoints to handle the entire lifecycle of a service booking, allowing users and providers to track and update statuses (Pending, Completed, Cancelled).
  • User Profiles: Endpoints to manage user profiles, roles, and vendor details.
  • Push Notifications: Integrated with Firebase Cloud Messaging (FCM) via the Firebase Admin SDK to deliver real-time notifications to Android and iOS clients.
  • Background Scheduling: Automated background jobs to manage booking states, reminders, or general database maintenance.

Technical Architecture & Implementation

This backend employs a modular, layered architecture to separate concerns and ensure maintainability.

Architecture Choices

The application follows the classic multi-tier architecture pattern:

  • Controllers: Expose REST API endpoints, validate incoming requests, and route them to appropriate services.
  • Services: Encapsulate the core business logic, ensuring it remains decoupled from HTTP transport and database implementations.
  • Repositories: Manage data persistence and retrieval using Spring Data JPA, providing an abstraction over the underlying database.

Data Storage & Supabase Integration

While Supabase is utilized as the underlying infrastructure, its responsibilities are strictly limited to data and file storage:

  • Database: Uses PostgreSQL hosted on Supabase as the primary relational database. Spring Data JPA is used for Object-Relational Mapping (ORM) to securely and efficiently interact with the database.
  • Cloud Storage: Supabase Cloud Storage is utilized for handling file uploads, such as user avatars and service images.

Security

Authentication and authorization are completely handled internally within the Spring Boot application, intentionally bypassing Supabase Auth to maintain full control over the authentication flow.

  • Spring Security: Secures all API endpoints, managing role-based access control and the authentication context.
  • JWT (JSON Web Tokens): Used for stateless session management. The backend generates and verifies JWTs to authenticate user identity securely on every protected API request.

Push Notifications

Real-time updates are critical for managing service bookings.

  • Firebase Admin SDK: The backend uses the Firebase Admin SDK to dispatch real-time push notifications directly to the cross-platform clients, ensuring users are instantly notified about critical booking updates.

Technology Stack

  • Framework: Spring Boot (Spring Web MVC)
  • Security: Spring Security, JJWT (io.jsonwebtoken)
  • Database ORM: Spring Data JPA, Hibernate
  • Database / Cloud Storage: PostgreSQL & Storage via Supabase
  • External Services: Firebase Admin SDK for Push Notifications
  • Language: Java 21 & Kotlin
  • Build Tool: Maven

Links

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages