React, Typescript, Vite, React Hook Form, Stripe, Tailwindcss, Shadcn, Axios, React Query, Zod
Built with React and TypeScript, Next Cinema Frontend is a web application that enables users to securely purchase movie tickets via Stripe, while providing a dedicated dashboard for administrators to manage cinema screenings.
sImportant Functionalities
The entire routing logic resides in main.js (react router).
For navigation purposes, I've used Link and useNavigation (react router).
There is a global axios client configured for the API.
I've used axios response interceptors for handling expired access token (jwt).
I've used axios request interceptors for attaching accessToken (jwt) on every request.
For authentication the app uses JWT. Access token is being stored in react state and the refresh token in an HTTP-only cookie.
For authorization purposes, the app uses two components wrappers (AdminRoute, UserRoute).
For fetching I've used useQuery and for mutations I've used useMutation (react query).
Forms are being handled by react hook form and the validation side is made possible with zod.
Back to all projects