A RESTful API for managing your favorite development tools. VUTTR allows users to create, read, update, and delete tools with their respective names, links, descriptions, and tags.
- Runtime: Node.js
- Framework: Fastify
- Language: TypeScript
- ORM: Prisma
- Database: PostgreSQL
- Testing: Vitest
- Documentation: Swagger/OpenAPI
- Authentication: JWT
- Validation: Zod
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher)
- npm or yarn
- PostgreSQL
- Git
- Clone the repository:
git clone https://github.com/yourusername/vuttr-api.git
cd vuttr-api
- Install dependencies:
npm install
# or
yarn install
- Set up the database:
# Generate Prisma client
npm run prisma:generate
# Run migrations
npm run prisma:migrate
Create a .env
file in the root directory and add the following variables:
# Application
PORT=3000
NODE_ENV=development
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/vuttr?schema=public"
# Authentication
JWT_SECRET=your_jwt_secret
npm run dev
# or
yarn dev
npm run build
npm start
# or
yarn build
yarn start
The API will be available at http://localhost:3000
npm run test
# or
yarn test
npm run test:e2e
# or
yarn test:e2e
npm run test:coverage
# or
yarn test:coverage
The API documentation is available through Swagger UI when the application is running:
- Development: http://localhost:3000/documentation
- Production: https://your-api-url/documentation
POST /tool
- Create a new toolGET /tools
- List all toolsGET /tools?tag=node
- Search tools by tagDELETE /tool/:id
- Delete a toolPOST /user
- Register a new userPOST /sessions
- Authenticate user
For detailed request/response examples and schemas, please refer to the Swagger documentation.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.