Skip to content

This project is built with Node.js, Express.js, TypeScript, MongoDB, Redis and React.js. It provides a platform for managing contracts

Notifications You must be signed in to change notification settings

hadi-dasti/uplaw_contract

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 

Repository files navigation

  • 🔭 I’m currently working on uplaw_contract

  • 🌱 I’m currently learning rabbitmq

  • 💬 Ask me about node, express js

  • 📫 How to reach me hadidasti98@gmail.com

  • ⚡ Fun fact 🤞😉

Connect with me:

https://wwwlinkedin.com/in/hadi-dasti

Languages and Tools:

express git javascript jest mongodb nodejs postman react redis typescript

#Contract This project is built with Node.js, Express.js, TypeScript, MongoDB, Redis and React.js. It provides a platform for managing contracts

#Architecture This project follows a RESTful API architecture, allowing clients to interact with the server using standard HTTP methods. The API endpoints are designed to be intuitive and follow best practices for resource management.

#ES6 and TypeScript This project utilizes ES6 syntax and TypeScript to improve code readability and maintainability. By leveraging modern language features such as arrow functions, destructuring, and classes, the codebase is more concise and easier to understand. TypeScript provides static typing and advanced language features that help catch errors earlier in the development process.

#Monolithic The project also follows a monolithic architecture, where all components and functionality are contained within a single codebase. This approach simplifies development and deployment, making it easier to maintain and scale the application.

#Modular and Functional Design and Object-Oriented Programming (OOP) The codebase of this project is organized into modules, each responsible for a specific feature or functionality. This modular design promotes code reusability, maintainability, and separation of concerns. The project also follows functional programming principles, emphasizing immutability, pure functions, and composition. This approach enhances code readability, testability, and scalability. While this project primarily follows a functional design approach, certain components may utilize object-oriented programming concepts when appropriate. OOP principles such as encapsulation, inheritance, and polymorphism may be employed to enhance code organization and maintainability

#Clean Code This project emphasizes clean code practices, aiming for readability, maintainability, and simplicity. The codebase follows industry-standard naming conventions, utilizes meaningful variable and function names. Additionally, the project incorporates proper code formatting, comments, and documentation to enhance readability and ease of understanding.

#Message Queue with RabbitMQ This project incorporates a message queue system using RabbitMQ. RabbitMQ enables asynchronous communication between different components of the application. By leveraging queues and message exchanges, the project achieves decoupling of tasks and improves scalability and fault tolerance

#Socket.io This project uses Socket.io to enable real-time communication between the server and clients. Socket.io provides a simple and reliable way to implement bidirectional communication between different components of the application.

#ODM Mongoose and Aggregation Pipeline This project utilizes Mongoose as an Object-Document Mapping (ODM) library for MongoDB. Mongoose simplifies working with MongoDB by providing a schema-based solution to model application data. Additionally, Mongoose supports the MongoDB Aggregation Pipeline, allowing for complex data processing and analysis.

#Testing Servers with Jest This project includes a comprehensive test suite built with Jest. The test suite covers both unit tests and integration tests for all major components of the application. The tests are designed to be reliable, repeatable, and easy to understand. To run the test suite, use the following command: npm run test To run the test suite with coverage reporting, use the following command: npm run test:coverage

#Getting Started To get started with this project, follow these steps: Clone the repository from GitHub. Install the required dependencies by running npm install. Start the development server by running npm run dev. Visit http://localhost:3000 in your web browser to access the app.

#Scripts This project includes the following scripts:

start: Starts the production server. dev: Starts the development server using ts-node-dev. test: Runs the Jest test suite. test:coverage: Runs the Jest test suite with coverage reporting.

#Dependencies This project includes the following dependencies:

amqplib: A library for working with AMQP. bcryptjs: A library for hashing passwords. cors: A library for enabling CORS in Express.js. dotenv: A library for loading environment variables from a .env file. ejs: A library for server-side rendering of HTML templates. express: A web framework for Node.js. helmet: A library for securing Express.js apps with various HTTP headers. joi: A library for validating input data. jsonwebtoken: A library for working with JSON Web Tokens (JWTs). mongoose: An ODM library for MongoDB. ms: A library for working with time durations. multer: A library for handling file uploads. nodemailer: A library for sending email messages. passport: A library for authentication in Node.js apps. passport-google-oauth20: A Passport.js strategy for authenticating with Google OAuth 2.0. pm2: A process manager for Node.js apps. redis: A library for working with Redis. socket.io: A library for real-time communication between clients and servers. uuid: A library for generating UUIDs.

#Dev Dependencies This project includes the following dev dependencies:

@types/amqplib: TypeScript definitions for AMQP. @types/bcryptjs: TypeScript definitions for bcryptjs. @types/cors: TypeScript definitions for cors. @types/dotenv: TypeScript definitions for dotenv. @types/express: TypeScript definitions for Express.js. @types/jest: TypeScript definitions for Jest. @types/jsonwebtoken: TypeScript definitions for jsonwebtoken. @types/mongoose: TypeScript definitions for Mongoose. @types/ms: TypeScript definitions for ms. @types/passport-google-oauth20: TypeScript definitions for passport-google-oauth20. @types/redis: TypeScript definitions for Redis. @types/socket.io-redis: TypeScript definitions for socket.io-redis. @types/uuid: TypeScript definitions for uuid. jest: A testing framework for Node.js apps. supertest: A library for testing HTTP servers in Node.js apps. ts-jest: A Jest transformer for TypeScript code. ts-node-dev: A development server that automatically restarts when code changes. typescript: A superset of JavaScript that adds optional static typing.

About

This project is built with Node.js, Express.js, TypeScript, MongoDB, Redis and React.js. It provides a platform for managing contracts

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published