REST Client App is a lightweight tool for interacting with RESTful APIs, allowing users to create and send HTTP requests, manage headers and bodies, and review their request history.
- Framework: Next.js
- Language: TypeScript
- UI Library: Material UI
- Backend-as-a-Service: Firebase
- Testing: Vitest + React Testing Library
- Code Quality: ESLint + Prettier
- Git Hooks: Husky + lint-staged + commitlint
├── app/ # Next.js App Router (routing)
│ ├── layout.tsx # Imports from src/app/providers
│ ├── page.tsx # Imports from src/pages/home
│ ├── folder-name/
│ │ └── [id]/
│ │ └── page.tsx # Imports from src/pages/folder-name
├── pages/ # Stub Next.js pages folder
│ ├── README.md # Description of why this folder exists
├── src/ # FSD structure
│ ├── app/ # FSD app layer
│ ├── entities/
│ ├── features/
│ ├── pages/ # FSD pages layer
│ ├── shared/
│ ├── widgets/
To start working on the project, clone the repository to your local machine.
Repository: https://github.com/cherkasovaa/rest-client-app
git clone https://github.com/cherkasovaa/rest-client-app.gitAfter cloning, navigate to the project directory:
cd rest-client-appTo start working on the project, install all dependencies:
npm installDuring development, use the development mode. To start the dev server, run:
npm run devThe local server will open at http://localhost:3000
To build the project, run: npm run build
To preview the built project, use the built-in Next.js server. Start it with: npm run start
Run tests with the command: npm run test
- Check code with ESLint:
npm run lint - Auto-fix ESLint issues:
npm run lint:fix - Format code with Prettier:
npm run format
Husky is used to automate code and commit message checks.
After cloning the repository and installing dependencies, run: npm run prepare
Warning
If hooks do not work Make sure the files in .husky/ have execution permissions
chmod +x .husky/pre-commit
chmod +x .husky/commit-msg
The project uses Conventional Commits to standardize commit messages. The message format is:
<type>: <description>
[body]Example: feat: add login page
Allowed types:
feat: a new featurefix: a bug fixdocs: documentation changesstyle: code formatting changesrefactor: code refactoringtest: adding or fixing testschore: updates to build tasks, configs, etc
Developers:
Mentor: Aleh Kuis