A modern, TypeScript-based REST API built with Express.js, featuring Swagger documentation, automated testing, and Docker support.
- 🚀 Built with Express.js and TypeScript
- 📚 Swagger/OpenAPI documentation
- 🛡️ Security features with Helmet
- 📝 Logging with Winston
- ⏰ Scheduled tasks with node-cron
- 📅 Date handling with Luxon
- 🐳 Docker support
- 🧪 Testing with Vitest
- ✨ Code formatting with Prettier
- 🔍 Linting with ESLint
- 🐶 Git hooks with Husky
- Node.js >= 16.0.0
- Yarn (recommended) or npm
- Docker (optional)
- Clone the repository:
git clone https://github.com/fadihanna123/api.git
cd api
- Install dependencies:
yarn install
Start the development server:
yarn dev
The API will be available at https://localhost:5000
yarn dev
- Start development serveryarn start
- Start production serveryarn build
- Build the applicationyarn test
- Run testsyarn lint
- Run linteryarn format
- Format codeyarn type-check
- Type checkingyarn ci
- Run CI checks (build, lint, test)
Build and run with Docker:
docker-compose up
Once the server is running, access the Swagger documentation at:
https://localhost:5000/api-docs
- 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.
- Fadi Hanna - GitHub