/timor

A full stack subscription management application.

Primary LanguageTypeScriptMIT LicenseMIT

This is a side project for the general use case: Pricing or Subscription of all kinds of SAAS products.

Frontend - Web

  • Next.js (React.js) with TypeScript
  • Tailwind CSS for styling
  • Zod for validation
  • Zustand for state management
  • NextAuth for authorization
  • vitest + @testing-library/react for unit/components testing
  • Shadcn/ui for UI components if needed
  • tanstack-query for data fetching and caching

Backend

  • Microservices architecture
  • Event driven architecture
  • Domain driven design as possible

User Service

Domain:

  • Combined Bounded Context: User Identity + Authentication
  • User registration, profile management
  • Authentication (JWT, sessions)
  • Password management

Tech stack:

  • Java 21 with Spring Boot 3
  • Flyway with PostgreSQL
  • Spring Data JPA
  • Spring Security

Subscription Service

Domain:

  • Subscription lifecycle
  • Plan management
  • Stripe integration and payment processing
  • Billing history

Tech stack:

  • Gin with Golang
  • pgx for PostgreSQL

Notification Service

TODO

Domain:

  • Supporting Domain: Communications
  • Email notifications
  • Event processing from other services

Tech stack:

Logging Service

TODO

Domain:

  • Supporting Domain: logging
  • Key activity logging
  • Communicate with other services

Tech stack:

  • golang
  • grpc
  • mongodb

System communications

  • Event driven with NATS or Kafka
  • Event driven for eventual consistency