Skip to content

RhCodePi/todo-app

Repository files navigation

TODO Uygulamasi

Requirements

Getting Started

Clone this repository to your local machine:

  git clone https://github.com/RhCodePi/todo-app.git

Go to the created folder:

  cd todo-app

Start to docker

Start to couchbase server on Docker

Make sure to docker is runnig before execute the command

  docker compose up -d

To stop the server

  docker compose down

Installing

Please make sure to install dependencies in each service directory.

Go to the server directory

  cd Todoapp.Auth.Service

Install dependencies:

  npm install

Start to Auth Server:

  npm run dev

Make sure that all services are running simultaneously.

Services

Auth Service

Auth servis kullanicinin login, register, refreshtoken gibi requestlerini karsilayacak servistir. Sadede gateway uzerinden gelen istekleri yanitlar.

Data Models

Todo:

interface Todo {
  id: number;
  text: string;
  author: string;
  isCompleted: boolean;
  expireDate: Date;
  createdAt: Date;
  updatedAt: Date;
}

User:

interface User {
  id: string;
  email: string;
  password: string;
  name: string;
  lastname: string;
  todos: Todo[];
}

Endpoints

Her endpoint /auth on ekine sahip olmalidir.

  • /signup - POST

    • Kullanicidan alinan bilgileri validate eder.
    • Kullanicidan alinan bilgileri database'e kaydeder.
  • /signin - POST

    • Kullanici adiyla database'e request atar.
    • Donen datanin parolasiyla kullanicinin girdigi parolayi karsilastirir.
    • Kullanicinin datasiyla birlikte jwt formatinda access ve refresh token doner.
    • Access token'in TLL' i 1 dakikadir.
    • Refres token'in TTL' i yok.
  • /refreshtoken - POST

    • Refresh token uzerinden yeni bir access token olusturulup kullaniciya dondurulur.

    Todo Servis

    Todo servis todolarin upsert, delete, get gibi crud islemlerini yapan servisimizdir. Sadece gateway uzerinden gelen requestlere yanit verir.

    Data Models

Todo:

interface Todo {
  id: number;
  text: string;
  author: string;
  isCompleted: boolean;
  expireDate: Date;
  createdAt: Date;
  updatedAt: Date;
}

Endpoints

Her enpoint /todo on ekine sahib olmalidir.

  • / - POST
    • Yenibir todo ekler
    • Mevcut todoyu gunceller
  • /:id - DELETE
    • ID' si eslesen todoyu siler
    • Silinen todoyu silinmis todolar table'ina ekler.
  • /:id - GET
    • ID ile eslesen todoyu getirir.
  • / - GET
    • Butun todolari getirir
  • /deleted - POST
    • User'id ye gore silinen tum todolari getirir

Gateway Servis

Gateway servis gelen requestleri endpointlerindeki on eke gore ilgili servislere yonlendirir. Secure end pointler icin auth middleware ile access token (JWT) offline olarak verify eder.

Endpoints
  • /auth/*
    • Authentication Servisine yonlendirilir
  • /todo/*
    • Todo servisine yonlendirilir

Architecture

architecture.png

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published