This project contains the backend APIs developed in Node.js using a microservices architecture to manage Books and Users services.
This repository houses the backend services that cater to two main functionalities: Books and Users. The services are designed to operate independently as microservices, providing dedicated APIs for managing books-related operations and user-related functionalities.
The project follows a microservices architecture, allowing separation of concerns and scalability. The architecture consists of individual services for Books and Users, ensuring modularity and flexibility in development and deployment.
To set up the services locally, follow these steps:
- Clone the repository:
git clone https://github.com/Sidheeqpallam/foxiom.git
- Install dependencies:
npm install
- Configure environment variables (if applicable).
- Start the services:
npm start
GET /api/v1/books
: Retrieve all books.GET /api/v1/books/:id
: Retrieve a specific book by ID.POST /api/v1/books
: Create a new book.PUT /api/v1/books/:id
: Update a book by ID.DELETE /api/v1/books/:id
: Delete a book by ID.
POST /api/v1/users/auth/register
: Create a new user.POST /api/v1/users/auth/login
: login into a user account
The APIs can be utilized by making HTTP requests to the respective endpoints. Ensure proper authentication and authorization mechanisms (bearer token) are in place for books-related operations.
The project utilizes various dependencies in the Node.js ecosystem. Refer to the package.json
file for a complete list of dependencies and their versions.
To run the services using Docker, follow these steps:
- Install Docker on your machine if you haven't already.
- Build the Docker images:
docker-compose build
- Start the services:
docker-compose up
The docker-compose.yml
file includes configurations for running the services as Docker containers.
Contributions to the project are welcome! Feel free to submit bug reports, feature requests, or pull requests.
- Fork the repository.
- Create your branch:
git checkout -b feature/my-new-feature
- Commit your changes:
git commit -am 'Add new feature'
- Push to the branch:
git push origin feature/my-new-feature
- Submit a pull request.
This project is licensed under the ISC License.