A comprehensive REST API for financial management built with Node.js, Express, and MongoDB. This API provides features for digital wallet management, transaction tracking, expense analytics, wishlists, and user notifications. It supports multi-currency transactions, subscription tracking, and shared wallet access.
-
User Management
- Authentication with JWT
- User profiles and settings
- Role-based access control
-
Financial Management
- Digital wallet management with multi-currency support
- Transaction tracking and categorization
- Expense analytics and reporting
- Subscription management
- Shared wallet access
-
Additional Features
- Wishlist management with sharing capabilities
- Push notifications system
- Real-time updates using Socket.IO
- Comprehensive API documentation using OpenAPI 3.1.0
- Node.js with TypeScript
- Express.js for REST API
- MongoDB with Mongoose ODM
- Socket.IO for real-time features
- JWT for authentication
- Zod for validation
- Winston for logging
- Jest for testing
- Node.js (v22.13.1 or later)
- MongoDB instance
- npm or yarn package manager
-
Clone the repository:
git clone https://github.com/yourusername/api.git cd api
-
Install dependencies:
npm install
-
Create environment variables:
cp .env.example .env
Then edit
.env
with your configuration. -
Start the development server:
npm run dev
The API will be available at http://localhost:8001
by default.
The API documentation is available in two formats:
- ReDoc UI:
/v1/docs
- Scalar UI:
/v2/docs
/src/controller
- Request handlers and business logic/src/model
- Database models and schemas/src/routes
- API route definitions/src/middleware
- Express middleware/src/validation
- Request validation schemas/src/services
- Business services/src/utils
- Utility functions/src/config
- Configuration files/src/constants
- Constant definitions
npm run dev
- Start development servernpm run build
- Build production versionnpm start
- Start production servernpm test
- Run testsnpm run lint
- Run ESLintnpm run prettier
- Run Prettier checknpm run generate:openapi
- Generate OpenAPI documentation
Run the test suite:
npm test
This will run the Jest test suite with coverage reporting.
- 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.
Mucahid Yazar
- Website: mucahid.dev
- Email: [email protected]
- Built with TypeScript for enhanced type safety
- Uses modern JavaScript features and best practices
- Follows REST API design principles
- Implements comprehensive error handling
- Includes full API documentation