imkarin / datingapp Goto Github PK
View Code? Open in Web Editor NEWA dating app for movie fans, based on NodeJS (Express), MongoDB and Express. Team project for cmda-tech, 2020.
Home Page: http://wavy-dating.herokuapp.com/
License: MIT License
A dating app for movie fans, based on NodeJS (Express), MongoDB and Express. Team project for cmda-tech, 2020.
Home Page: http://wavy-dating.herokuapp.com/
License: MIT License
Nina Pajonk
Tech-1
Ik vind de repository erg netjes en overzichtelijk ingedeeld!
Er staat ook al veel genoteerd in de wiki.
Ja, heet team maakt gebruik van Git en Github om versie beheer van de code te doen. Ik zie verschillende branches, maar alleen nog maar van 2 personen i.p.v. 3.
Er zijn gezamenlijke afspraken gemaakt over de code standaarden, want het ziet er consequent uit. Overal dubbele: โ bijvoorbeeld. Dit is ook netjes beschreven in de wiki.
De readme.md van de team repo, is nog leeg. Op de individuele repo zag ik wel een duidelijke readme beschreven. Dus dit komt vast goed.
Dit ziet er al aardig goed/ werkend uit.
name: Week 7 - Code review
about: Code review on a classmate
title: Code review
labels: 'week-7, week-7-code-review'
Ralf
tech-1
Installatie ging heel soepel.
Na de .env file content gevraagd te hebben, werkt het in de localhost:3000 goed. Alles is klikbaar en er zit in een logische structuur in het gebruik van de app. Je kan nu alleen nog kiezen uit een aantal profielen en daarmee kan je door naar de app (liken/matchen). Ik neem aan dat dat kiezen van een profiel wordt vervangen door inloggen en registreren van een account. Maar dat is natuurlijk nu nog niet aan de orde. Al met al, een fijne en clear interface van de app๐.
Wat betreft de code:
Server (index.js).
Bij elk stuk code staat in comments waar dat stuk code over gaat. Ook is er een 'line' aangebracht in de comments waardoor het overzichtelijk wordt. Wat ik zelf niet gewend ben, maar wat Karin wel doet, is dat de 'app.' van alle onderwerpen (static folder, session en handle routes) niet bij elkaar staan. Ik vind het persoonlijk overzichtelijker als alle 'app.' onder elkaar staan. Maar omdat Karin ze heeft 'gelabeld' met waar elk stuk code over gaat, snap ik dat wel.
Bovendien vind ik het nice dat onder de handle routes alle functions genest zijn uitgewerkt. Dit zorgt voor nog steeds duidelijke overzichtelijkheid van de code. Ook hier is in comments gezet wat bepaalde stukken code doen.
package.json.
Clean file met alleen de broodnodige dependencies erin. Ik mis hier wel een linter...ESlint zou ik aanraden, omdat die goed configureerbaar is.
.ejs files.
Goed gebruik gemaakt van loops en de .ejs 'includes' (<% , <%- , <%=). .ejs files zijn mooi genest (Beautify denk ik?) en dus overzichtelijk.
script files.
De client-side JavaScript bestanden zijn netjes opgebouwd. Eerst declaration variables, dan functions en als laatst eventlisteners. Hier heb ik geen tips voor, alleen maar tops. Code is bovendien netjes geschreven. Echter weet ik niet of je meerder .js files mag hebben. Voor hetzelfde geldt voor meerdere .css bestanden.
Kortom, nette feature die overzichtelijke code bevat en hier en daar wat betreft linting nog iets dieper op in mag gaan.
Git en Github wordt zeker goed gebruikt voor versiebeheer. Ook zijn er meerdere branches aangemaakt, wat het werken in Git gemakkelijker maakt.
Code standaarden zoals linting moet nog even research naar gedaan worden.
README van Karin is erg efficient. Er staat kort uitgelegd wat de feature inhoudt. Een korte weergave van de UI en dan de installatie. Ook staat de structuur van de database er in en een hele uitgebreide bronnenlijst. Super!
Er moet nog wel het registreren en inloggen verwerkt worden. Maar voor zover het er nu uitziet, gaat dat zeker goed komen.
Goed bezig!
Currently, this function logic is entirely wrapped in an if statement. This causes more indentation, which decreases code readability.
Turn the check around and return early.
Instead of checking if the userid exists, check if the userid does not exist. if it doesn't exist, redirect to login. After the redirect call, put return. This makes sure the rest of the function logic won't be executed.
function likedUsers(req, res, next) {
if (userid !== null) {
// ... entire function logic
} else {
res.redirect("/login");
}
}
function likedUsers(req, res, next) {
// or, if (!userid) { (falsey values)
if (userid === null) {
res.redirect("/login");
return;
}
// ... entire function logic
}
Not only did you lose a level of indentation which improves code readability already, people can now immediately see what happens when there is no userid.
General rule:
Please think about every opened issue and decide wether or not you want to do anything with it. It's not important to do it my way, it's important to be able to explain what you did or didn't do with it and why.
You are initializing session but not doing anything with it. Also, you are saving the user globally, which is considered a bad pattern (If the server restarts, the user is gone).
Remove global userid variable
In login function, rewrite userid = req.body.user;
to req.session.user = req.body.user
.
Then write all references to userid
to req.session.user
Please think about every opened issue and decide wether or not you want to do anything with it. It's not important to do it my way, it's important to be able to explain what you did or didn't do with it and why.
Noticed that it's impossible to delete someone you've liked, once you matched. As long as the person is 'pending' you can delete them and this gets registered in the database, but as soon as you're matched, your delete doesn't get registered in the database anymore.
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.