A front end challenge of an interface for authentication, from prototype to code.
The objective of this challenge was to improve my UX and UI skills, applying design principles to create a login form and also the improvement of tools for frontend development such as next, typescript, tailwind, tests with cypress, react-hook-form, among others .
Inside the code, I focused on following the good practices of React, breaking down the application into reusable components, leaving the form and inputs ready to be sent to an API and being able to be reused in different ways, validating form information with zod, testing components with cypress, and documenting components with storybook.
- NextJS
- ReactJS
- TypeScript
- Tailwind
- Radix-ui
- phospor icons
- React-hook-form
- Zod
- Storybook
- Cypress
- Eslint
- Prettier
- Husky
- Commitlint
pnpm install
or
yarn
or
npm install
pnpm dev
or
yarn dev
or
npm run dev
Open http://localhost:3000 with your browser to see the result.
βββ src
βββ app
βββ assets
βββ components
βββ utils
Folder | Description |
---|---|
app | Pages |
assets | Images and static files for application |
components | Pages components |
utils | Auxiliary and reusable functions |
βββ <MyComponent>
βββ <MyComponent>.tsx
βββ <MyComponent>.spec.tsx
βββ <MyComponent>.stories.tsx
βββ index.ts
Files | Description |
---|---|
.tsx | Component implementation |
.spec.tsx | Component tests |
.stories.tsx | Storybook component |
index.ts | File to export the component |
dev
: run development serverbuild
: creates the production build versionlint
: runs the linter in all components and pagesstorybook
: runs docs with storybookcypress
: open cypresstest
: run test filecommit
: commit staged changes
- User registration
- Forgot password
- Improve component tests
- Integration with NextAuth
Made with π€ by Arthur