This project is a loan repayment web app API built with Node.js, TypeScript, Nest.js, GraphQL, Apollo, and integrates with various AWS services using the Serverless Framework.
- Project Overview
- Getting Started
- Project Structure
- GraphQL Schema
- Entities and DTOs
- Services
- GraphQL Resolvers
- AWS Integration
- Deployment
- Testing
- Additional Considerations
- Contributing
- License
This project is a loan repayment web app API that utilizes Nest.js for server-side development, GraphQL for efficient data querying, AWS services for serverless architecture, and the Serverless Framework for deployment.
Make sure you have the following installed:
- Node.js
- npm
- Nest.js CLI
- Serverless Framework
-
Clone the repository:
git clone https://github.com/your-username/loan-repayment-app.git
-
Install dependencies:
cd loan-repayment-app npm install
-
Set up AWS credentials for Serverless Framework.
The project follows a modular structure:
- graphql: Contains GraphQL schema, resolvers, entities, DTOs, and services.
- src: Main source code directory.
- serverless.yml: Configuration for Serverless Framework.
The GraphQL schema defines the API's types, queries, and mutations. See graphql/loan.schema.graphql.
Entities represent the data structure, while DTOs define the shape of data transferred between client and server. See graphql/entities and graphql/dto.
Services handle business logic and interact with data. See graphql/loan.service.ts.
Resolvers map to the operations in the schema and call the corresponding methods in services. See graphql/loan.resolver.ts.
The project integrates with various AWS services, including Lambda, EC2, ECS, ECR, S3, and RDS. Ensure proper AWS configuration.
Deploy the application using the Serverless Framework. See serverless.yml.
serverless deploy
Run unit tests for the Nest.js application.
npm run test
- Ensure proper monitoring and logging using AWS CloudWatch or other tools.
- Implement security measures using IAM roles and policies.
- Design the application for scalability, considering AWS services like ECS for containerization.
Feel free to contribute to the project. Fork the repository and create a pull request with your changes.
This project is licensed under the MIT License.