CRM(customer relationship management) backend using go lang

Job ID: 34255506

Budget: ₹600 – ₹1,500 INR

You will build the backend (i.e., server-side portion) of a CRM application.
That is, you are **not** responsible for creating a front-end UI.
Instead, while your server is on and active, users will be able to make their own HTTP requests to your server to perform CRUD operations.
Since this project won't have a user interface for users to interact with, users will be largely interacting with your project via Postman (or cURL).

## Instructions

The project represents the backend of a customer relationship management (CRM) web application. As users interact with the app via some user interface, your server will support all of the functionalities:

* Getting a list of all customers
* Getting data for a single customer
* Adding a customer
* Updating a customer's information
* Removing a customer


Feel free to design and implement your own workflow, but if you are stuck or could use some inspiration, we've included the following walkthrough the help you get up and running:

1. **Create a representation of a Customer** as a collection of typed fields.
2. **Store your customer data** (including "seed" data) in a data structure that allows for CRUD operations. You'll want to be able to add new Customer entries to this data structure, as well as read from it, update data within it, and delete any items from it.
3. **Define the server endpoints** as well as the logical **HTTP methods** associated with them. For example, a user making a **GET** request the **/customers** route would probably expect a list of customers to be returned. On the other hand, POST to the same route would have different expectations. Think about how you could implement a router.
4. **Assign handlers** for each such request (e.g., a dedicated handler for **GET /customers**)
5. **Build each handler** to handle incoming request bodies and return logical responses. Incoming data may need to be interpreted, parsed, and/or converted to different media. How would you accomplish that?
6. **Ensure that each handler performs the necessary operations on the data structure** you choose to represent your database.

## Unit Tests
To help you check if you're heading in the right direction with the development of your server, unit tests have been provided in the main-test.go file in the current directory.

To run these unit tests, download the main_test.go and place the file in the same directory as your main server file. Then, run go test in your terminal. If your app passes all unit tests, you should see PASS written in the terminal output. If one or more tests fail, you should see something like the following:
Related categories: Golang Backend Development