LegendisM / maktab

Restful API Project with Spring Framework, Kotlin, Spring Data JPA, PostgreSql ...

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Maktab

This project was created with Kotlin language and using Spring framework.

The purpose of this project is to manage books, users, attachments and more (RestfulAPI).

Dependencies

  • Spring Framework
  • Spring Boot
  • Spring Boot Security
  • Spring Data JPA
  • Validation
  • Postgres Driver
  • Json Web Token (JWT)
  • Map Struct
  • AWS S3 (io.awspring.cloud)
  • WebSocket (SockJS, Stomp)
  • KDoc

Modules

  • Auth Module (signin, signup, auth-interceptor, currentUser-annotation, etc)
  • User Module
  • Campaign Module (create, filter, findOne, update, delete, etc)
    • Targets, Logs, Members, Chats
  • Book Module (create, filter, findOne, update, delete, etc)
  • Category Module (create, filter, findOne, update, delete, etc)
  • Common (Pagination, General Responses DTO, General Exceptions, SecretConfiguration)
  • Storage Module (S3)

TODO

  • Storage Module (S3)
    • Add user avatar-image
    • Add book images, document-file
    • MultipartFile Validator (content-type, size, etc)
  • User Profile Management
    • Add PATCH /profiles/me for updating user profile (username, avatar)
  • Policy Manager (user-permissions, user-role)
    • User Role
    • User Permissions
    • Initializer (default roles and permissions)
    • Interceptor + Annotations (Guard) to check permissions and roles in controllers
  • Tag Module
  • Campaign Module
    • Manage campaign (create, find, delete)
      • Validate ownership policy for update/delete operation
    • Join/Leave from campaign (campaign members)
    • Campaign member management (campaign members)
    • Campaign target (create, find, delete)
    • Campaign target log (create, find, delete)
    • Campaign real-time group chat
    • Campaign transactions logs (changes tracker for owner)
  • Migration - Flyway
  • Docker
  • Add Code Comments (KDoc)
    • Entities
    • DTOS
    • Methods of Services
  • Implement Websocket custom handshake (authorization)
  • Auh Session Management (active devices, etc)
    • OAuth Server (Spring)
  • Purchasable products (book, etc)

About

Restful API Project with Spring Framework, Kotlin, Spring Data JPA, PostgreSql ...


Languages

Language:Kotlin 99.7%Language:Dockerfile 0.3%