Modern portfolio website built with React, TypeScript, and Tailwind CSS, featuring a clean design and smooth animations.
- ⚡️ Blazing fast with Vite
- 🎨 Styled with Tailwind CSS
- 🛠 TypeScript for type safety
- 🧪 Comprehensive test coverage with Jest
- 🧹 Code quality with ESLint and Prettier
- 🐶 Husky pre-commit hooks
- 📝 Conventional commits with Commitizen
- 🤖 Automated releases with semantic-release
- Frontend Framework: React 19
- Language: TypeScript
- Styling: Tailwind CSS
- Build Tool: Vite
- Testing: Jest, React Testing Library
- Linting: ESLint
- Code Formatting: Prettier
- Git Hooks: Husky
- Commit Standard: Conventional Commits
- UI Components: Radix UI, shadcn/ui
- Icons: Lucide React
- Node.js 18+
- npm or yarn
-
Clone the repository:
git clone https://github.com/ericmaicon/ericmaicon.git cd ericmaicon
-
Install dependencies:
npm install
npm run dev
- Start development servernpm run build
- Build for productionnpm run test
- Run testsnpm run test:coverage
- Run tests with coveragenpm run lint
- Run ESLintnpm run format
- Format code with Prettiernpm run commit
- Interactive commit using Commitizen
This project uses Jest and React Testing Library for testing. To run tests:
# Run all tests
npm test
# Run tests with coverage
npm run test:coverage
ESLint is used for code linting. Run the linter with:
npm run lint
This project uses Husky for Git hooks. The following hooks are configured:
- pre-commit: Runs linting and tests on staged files
- commit-msg: Validates commit message format
This project uses Conventional Commits specification. Use the following format for commit messages:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Example:
feat: add user authentication
description of changes
Closes #123
feat
: A new featurefix
: A bug fixdocs
: Documentation only changesstyle
: Changes that do not affect the meaning of the code (white-space, formatting, etc.)refactor
: A code change that neither fixes a bug nor adds a featureperf
: A code change that improves performancetest
: Adding missing tests or correcting existing testsbuild
: Changes that affect the build system or external dependenciesci
: Changes to CI configuration files and scriptschore
: Other changes that don't modify src or test files
This project uses semantic-release for automated version management and package publishing. The following commit message conventions determine the version bump:
fix
: patch release (1.0.0 -> 1.0.1)feat
: minor release (1.0.0 -> 1.1.0)BREAKING CHANGE
: major release (1.0.0 -> 2.0.0)
MIT © Eric Maicon
Made with ❤️ using modern web technologies