sirveggie / ticket-booking Goto Github PK
View Code? Open in Web Editor NEWA ticket booking website created for the circus group Arctic Ensemble. Made with React.
License: MIT License
A ticket booking website created for the circus group Arctic Ensemble. Made with React.
License: MIT License
Terve @SirVeggie! Tässä lyhyt katselmointi Full Stack kurssin projektistasi. Katselmoinnissa esitetyt kommentit ovat parannusehdotuksia, joita voit halutessasi ottaa huomioon tässä tai tulevissa projekteissasi. Mitään muutoksia tähän projektiin ei siis ole pakko tehdä suoritusmerkintää varten.
Frontend-puolen koodi on selkeästi organisoitua, hyvä!
API-kutsut on abstrahoitu hyvin uudellenkäytettäviksi palveluiksi
API-kutsuihin liittyvät operaatiot tuottavat usein jonkin verran toisteellista boilerplate-koodia. Esimerkiksi React Query -kirjaston avulla API-kutsut voi helposti abstrahoida yksinkertaisiksi, uudelleenkäytettäväksii hookeiksi, kuten useTicket(id)
Admin-näkymän lataaminen vaikuttaa hyvältä käyttökohteelta React.lazy-funktiolle. Funktio liittyy nk. "Code-Splitting"-tekniikkaan, jossa ohjelman koodia ladataan "laiskasti" vasta tarvittaessa ja näin säästetään kaistaa ja nopeutetaan latausaikoja
Lomakkeiden tilanhallinta on hoidettu melko siististi, mutta kun lomakkeen koko kasvaa tai sen logiikka monimutkaistuu, on usein kätevää käyttää jotain lomakkeen tilanhallinnasta vastaavaa kirjastoa, kuten Formik
Reduxin actioneiden typet kannattaa tallentaa const
-tyyppisiin vakiomuuttujiin ja hyödyntää näitä muuttujia esim. reducereissa sen sijaan, että käyttäisi niitä suoraan merkkijonomuotoisena:
const ADD_TODO = 'todos/addTodo';
// ...
const todosReducer = (state, action) => {
switch (action.type) {
case ADD_TODO:
// ...
}
};
Tämä ehkäisee esimerkiksi kirjoitusvirheistä syntyviä bugeja ja helpottaa refaktorointia. Mallia voi katsoa Reduxin dokumentaatiosta
Redux Toolkit tarjoaa todella hyviä työkaluja Reduxin käyttöön. Esim. createSlice-funktio vähentää reducerien boilerplate-koodia huomattavasti. Se käyttää sisäisesti Immer-kirjastoa, joten myös tilan päivittäminen helpottuu
Myös backend-puolen koodi on selkeästi organisoitua, hienoa!
routerHelpers.ts sisältää hyviä uudelleenkäytettäviä abstraktioita
Tietokantaan liittyvät operaatiot on abstrahoitu järkevästi dataabase.ts-tiedostoon
Erittäin kattavan näköinen CI/CD-putki!
Lipun varaus -sovelluksesta löytyy tarvittava toiminallisuus esitysten ja näytösten tarkkailuun sekä lippujen ostamiseen. Admin-paneelista löytyy kattavasti toiminallisuutta sisältöjen hallintaan. Sovelluksen käyttöliittymä on helppokäyttöinen ja tyylikäs. Projektin koodi on kaikilta osin järkevästi organisoitua ja koodin laatu on erittäin hyvä. Teknologioita, kuten TypeScript on hyödynnetty järkevästi ja projektin CI/CD-putki vaikuttaa erittäin kattavalta. Hyvää työtä!
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.