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 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
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.
Auth servis kullanicinin login, register, refreshtoken gibi requestlerini karsilayacak servistir. Sadede gateway uzerinden gelen istekleri yanitlar.
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[];
}
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 todolarin upsert, delete, get gibi crud islemlerini yapan servisimizdir. Sadece gateway uzerinden gelen requestlere yanit verir.
Todo:
interface Todo {
id: number;
text: string;
author: string;
isCompleted: boolean;
expireDate: Date;
createdAt: Date;
updatedAt: Date;
}
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 gelen requestleri endpointlerindeki on eke gore ilgili servislere yonlendirir. Secure end pointler icin auth middleware ile access token (JWT) offline olarak verify eder.
- /auth/*
- Authentication Servisine yonlendirilir
- /todo/*
- Todo servisine yonlendirilir