Entitások terve, ORM, Cosmos DB, eddigi haladás stb.

Eddigi haladás

Sikeresen összejött a Google autentikáció. A felhasználó email címének md5 hash-e lesz a username-je első bejelentkezéskor, amit majd később változtathat egy egyénire (de legyen unique).

re:mark

Az Explore page egyelőre a sandbox.

Van oldala a felhasználóknak pl.: https://remark.triszt4n.xyz/u/triszt4n. Megváltoztatható a username a Profile page-en, de még van munka, az ehhez használt Azure Functionben még nincs megoldva az, hogy csak az a felhasználó tudja a username-jét update-elni, aki a JWT-ben is utazik (jelenleg szabadon akárki username-je változtatható, ha ismert az API endpoint).

Van most egy endpoint az összes felhasználó lekérésére, de ez hamarosan megszűnik (nem túl privacy-gondos): https://remark.triszt4n.xyz/hidden/users

Van inbound header checkolás, azt fogom felfedezni:

JSON Web Token Validation

Kódbázis:

A functions mappa alatt az egyes Function App-ok csoportosítva tartják a Functionöket magukat, és a client mappában a React app kódja, benne az api/contexts mappában pl. az autentikációs kontextus.

https://github.com/triszt4n/remark

Login_flow_Isoflow_Diagram_2022. 03. 27..png

Adatbázisbeli entitások

interface Channel {
	id: string
	uriName: string

	createdAt: number  // unix
	title: string
	descRawMarkdown: string
}
interface Post {
	id: string

	createdAt: number // unix
	title: string
	rawMarkdown: string
	imageUrl: string | null

	publisherId: string
	parentChannelId: string
}
interface Comment {
	id: string

	createdAt: number // unix
	rawMarkdown: string

	publisherId: string
	parentPostId: string
}
interface User {
	id: string
  email: string
  username: string // generated

  lastName: string
  firstName: string
  imageUrl: string | null
}
interface Notification {
	id: string

	createdAt: number // unix
	messageTitle: string
	messageBody: string

	userId: string
}

Join tables:

interface ChannelJoin {
	id: string
	createdAt: number // unix

	userId: string
	channelId: string

  isOwner: boolean
  isModerator: boolean
}

interface PostVote {
	id: string

	userId: string
	postId: string
}

interface CommentVote {
	id: string

	userId: string
	commentId: string
}

NOTE:

Adatbázissal való kapcsolat

set Azure Function Environment Variable for Nodejs Project

Azure Static App Route configuration with React Router

ORM: CosmosDB-s Azure által adott ORM