wgumenyuk / momentum Goto Github PK
View Code? Open in Web Editor NEWWebbasierte Fitness-Plattform zum Tracking aller Aspekte des Fitness-Lifestyles mit sozialer Interaktion.
Webbasierte Fitness-Plattform zum Tracking aller Aspekte des Fitness-Lifestyles mit sozialer Interaktion.
Geteilte Typdefinition für API-Antwort-Schema im shared
-Package, das vom Client und Server verwendet werden kann.
Keine Angabe.
Keine Angabe.
Keine Angabe.
Add a API test page which tests client and server APIs.
Create a Box or Button for a request/route.
If it works fine let the box be green.
If an error ocurred let the box be red.
Keine Angabe.
issue#29, issue#30
Koa-Server erstellen und CORS-Middleware hinzufügen.
Keine Angabe.
Keine Angabe.
Create a modular Tickbox Component for the frontend
Keine Angabe.
Keine Angabe.
GET /status
Route, die Uptime und ähnliche Informationen liefert.Keine Angabe.
Keine Angabe.
Create a landing index.html file
Create a index.html
The landing page has a login button
Keine Angabe.
Sobald ein Nutzer sich abmeldet, muss sein JWT für die restliche Lebenszeit des Tokens in eine Token-Blacklist hinzugefügt werden.
exp
abgezogen von iat
Auth-Service implementieren.
Keine Angabe.
Keine Angabe.
Keine Angabe.
Backend mit MongoDB über mongoose
verbinden.
Keine Angabe.
Keine Angabe.
Workout
-Modell für MongoDB entwerfen und implementieren.Siehe src/models/User.ts
für eine Implementation des Nutzer-Modells, Workout
sollte analog zu dem implementiert werden.
Keine Angabe.
Umstieg von mongoose
auf Prisma ORM, da mongoose
IntelliSense stark verlangsamt.
Keine Angabe.
Keine Angabe.
Add a route to the server which handles the login
Add a route with koa, which needs a username and passwords
Different return types depending on the user request sent
Issue-12
System-Font im Font Stack wird nicht geladen.
Keine Angabe.
System-Font wird verwendet, wenn die primären Schriftarten nicht verfügbar sind.
Keine Angabe.
Keine Angabe.
Keine Angabe.
Für bessere DX können wir geteilte Typdefinitionen hinzufügen.
Erstellen eines @momentum/shared
-Packages im packages
-Ordner.
Keine Angabe.
koa
und koa-router
sowie deren Typdefinitionen (siehe Schtitt 2) im server
-Package installieren.$ pnpm add koa koa-router
$ pnpm add -D @types/koa @types/koa__router
Keine Angabe.
Keine Angabe.
Keine Angabe.
Keine Angabe.
Keine Angabe.
Keine Angabe.
Keine Angabe.
Keine Angabe.
In src/internal/redis.ts
in Zeile 16
muss am Ende das Komma durch einen Punkt ersetzt werden.
Keine Angabe.
Keine Angabe.
Hinzufügen einer login()
-Funktion im Auth-Service1, der bei erfolgreicher Anmeldung ein JWT ausstellt. Nutzerdaten werden mit zod
überprüft. Das dazugehörige Login-Schema soll sich im Shared Package befinden.
Siehe register()
für eine mögliche Herangehensweise.
Abhängig von #107.
Der Auth-Service befindet sich in src/services/auth.ts
. ↩
Prisma-Modelle für User
, Exercise
, Split
und Workout
konzeptionieren und implementieren.
Keine Angabe.
Keine Angabe.
@node-rs/argon2
installieren für Passwort-Hashing installieren.
Keine Angabe.
Keine Angabe.
Keine Angabe.
Umgebungsvariablen mit dotenvx
laden.
$ dotenv run -- node .
Keine Angabe.
Momentan wird noch kein Logging im Redis-Connector ausgeführt.
Keine Angabe.
Keine Angabe.
Redis oder DragonflyDB zum Umsetzen der Token-Blacklist in das Backend einbinden.
Beide Datenbanken können mit ioredis
in das Backend eingebunden werden.
Momentan ist editorconfig
das einzige Tool, das die Code-Formatierung beeinflusst.
Keine Angabe.
Keine Angabe.
Schriftart Inter zum Client hinzufügen.
Installation mit Fontsource und Konfiguration in tailwind.config.js
.
Keine Angabe.
Keine Angabe.
Add a Client API which sends the Login Credentials to the Server Login API trough a http request.
Create a Client API.
Add the server endpoint.
Read the correct Credentials from login field (username and password).
Send the Credentials to the server endpoint.
Handle the server response from the login request.
Keine Angabe.
Issue#12, Issue#29
packages/client-mobile
) initialisieren.Keine Angabe.
Keine Angabe.
Keine Angabe.
dotenvx
package.json
hinzufügenWarning
Die .gitignore
im Root muss ebenfalls aktualisiert werden.
.env*
!.env.vault
{
// script für Development
"dev": "dotenvx -f .env.development -- node .",
// Script für Production
"start": "dotenvx -f .env.production -- node ."
}
Scripts können dann wie folgt ausgeführt werden:
$ pnpm dev
$ pnpm start
Keine Angabe.
Keine Angabe.
Hinzufügen einer logout()
-Funktion im Auth-Service1, der das Token in die Token-Blacklist hinzufügt und somit invalidiert.
logout(token: string): Promise<Momentum.Response>;
Abhängend von:
#45 wird durch dieses Issue ebenfalls erledigt.
Der Auth-Service befindet sich in src/services/auth.ts
. ↩
Momentan sind die Shared Types für API-Antworten (packages/shared
) nicht perfekt — sie können vereinfacht werden, und status
und code
können aus einem ResponseCode
-Objekt gleichzeitig ausgelesen werden.
Keine Angabe.
Keine Angabe.
CORS aktivieren für spätere Verwendung.
@koa/cors
CORS_ORIGIN
UmgebungsvariableKeine Angabe.
Keine Angabe.
pino
und pino-pretty
installieren und implementieren.Keine Angabe.
Keine Angabe.
Keine Angabe.
Keine Angabe.
mongoose
.Keine Angabe.
Keine Angabe.
Keine Angabe.
Eigener Error-Handler als Middleware für Koa, der 404
und andere Fehler verarbeiten kann.
Keine Angabe.
Keine Angabe.
MongoDB-Connector analog zum Redis-Connector1 implementieren. Wenn die Verbindung scheitert, dann gesamten Prozess beenden.
initMongo()
exporierenMONGODB_URL
kommt aus den Umgebungsvariablen process.env
src/internal/redis.ts
mongoose.connect(MONGODB_URL);
Keine Angabe.
src/internal/redis.ts
. ↩
Momentan erzeugt pino
keinen Output in Production, da targets
ein leerer Array ist.
stdout
logrotate
auf *NIX-SystemenKeine Angabe.
Keine Angabe.
Exercise
-Modell für MongoDB entwerfen und implementieren.Siehe src/models/User.ts
für eine Implementation des Nutzer-Modells, Exercise
sollte analog zu dem implementiert werden.
Keine Angabe.
Hinzufügen einer register()
-Funktion im Auth-Service1, der einen neues Nutzerkonto in der Datenbank erstellt.
Nutzerdaten werden mit zod
überprüft.
register(data: unknown): Promise<Momentum.Response>;
Keine Angabe.
Der Auth-Service befindet sich in src/services/auth.ts
. ↩
Prisma ORM ist langsamer als Mongoose und nicht für MongoDB optimiert.
Umstieg auf Mongoose.
Keine Angabe.
Um auf dem Server zu loggen, verwenden wir pino
.
pino-pretty
für Logging während development
Keine Angabe.
Status-Route /api/v1/status
, die eine erfolgreiche Antwort zurückschickt.
Keine Angabe.
Quellcode wird momentan nicht durch einen Linter überprüft, was auf Dauer zu schlechter Codequalität führen kann.
Keine Angabe.
Keine Angabe.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.