Instagram Backend API
*To be Updated*
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
-
About The Project
-
Getting Started
- Usage
- Roadmap
- License
- Meet the Team
About The Project
The task is to develop a basic version of a Instagram. You are only required to develop the API
for the system. Below are the details.
You are required to Design and Develop an HTTP JSON API capable of the following operations,
-
Create an User
- Should be a POST request
- Use JSON request body
- URL should be
‘/users'
-
Get a user using id
- Should be a GET request
- Id should be in the url parameter
- URL should be
‘/users/<id here>’
-
Create a Post
- Should be a POST request
- Use JSON request body
- URL should be
‘/posts'
-
Get a post using id
- Should be a GET request
- Id should be in the url parameter
- URL should be
‘/posts/<id here>’
-
List all posts of a user
- Should be a GET request
- URL should be
‘/posts/users/<Id here>'
Additional Constraints/Requirements:
- The API should be developed using Go.
- MongoDB should be used for storage.
- Only packages/libraries listed here and here can be used.
Scoring:
- Completion Percentage
- No. of working endpoints among the ones listed above.
- Quality of Code
- Reusability
- Consistency in naming variables, methods, functions, types
- Idiomatic i.e. in Go’s style
- Passwords should be securely stored such they can't be reverse engineered
- Make the server thread safe
- Add pagination to the list endpoint
- Add unit tests
Built With
Getting Started
To get a local copy up and running follow these simple steps.
Prerequisites
This list things you need, and how to install them.
Installation
- Clone the repo
git clone https://github.com/kanitmann/Instagram_backend_API.git
- Initialize GO
go mod init github.com/<Github ID>/<Project Name>
- Build
go build
Screenshots
Roadmap
See the open issues for a list of proposed features (and known issues).
License
Distributed under the GNU GPL3 License. See LICENSE
for more information.
Meet the Team
Made with 💙 by Kanit Mann