Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

The task is to develop a basic version of meeting scheduling API. You are only required to develop the API for the system. Below are

The task is to develop a basic version of meeting scheduling API. You are only required to develop the API for the system. Below are the details.


Meetings should have the following Attributes. All fields are mandatory unless marked optional:

  • Id

  • Title

  • Participants

  • Start Time

  • End Time

  • Creation Timestamp


Participants should have the following Attributes. All fields are mandatory unless marked optional:

  • Name

  • Email

  • RSVP (i.e. Yes/No/MayBe/Not Answered)


You are required to Design and Develop an HTTP JSON API capable of the following operations,

  • Schedule a meeting


    • Should be a POST request

    • Use JSON request body

    • URL should be ‘/meetings’

    • Must return the meeting in JSON format

  • Get a meeting using id


    • Should be a GET request

    • Id should be in the url parameter

    • URL should be ‘/meeting/’

    • Must return the meeting in JSON format

  • List all meetings within a time frame


    • Should be a GET request

    • URL should be ‘/meetings?start=&end=’

    • Must return a an array of meetings in JSON format that are within the time range

  • List all meetings of a participant


    • Should be a GET request

    • URL should be ‘/meetings?participant=’

    • Must return a an array of meetings in JSON format that have the participant received in the email within the time range







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


    • Total working endpoints among the ones listed above.

    • Meetings should not be overlapped i.e. one participant (uniquely identified by email) should not have 2 or more meetings with RSVP Yes with any overlap between their times.

  • Quality of Code


    • Reusability

    • Consistency in naming variables, methods, functions, types

    • Idiomatic i.e. in Go’s style

  • Make the server thread safe i.e. it should not have any race conditions especially when two meetings are being booked simultaneously for the same participant with overlapping time.

  • Add pagination to the list endpoint

  • Add unit tests


Resources:

  • Completing the Golang tour should give one a good grip over the language. Do this well and you will complete the task with ease.

  • This article should give you an idea on getting started with Web Application Development in Go.

  • This book covers both the workings of web and Go based servers.

  • This covers getting started with MongoDB in Go.

Step by Step Solution

3.41 Rating (167 Votes )

There are 3 Steps involved in it

Step: 1

AnswerUse Of Color to Identify if a Form Control is Required Some times designers tend to use co... blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

International Accounting

Authors: Timothy Doupnik, Hector Perera

4th edition

77862201, 978-0077760298, 77760298, 978-0077862206

More Books

Students also viewed these Programming questions

Question

How do you add two harmonic motions having different frequencies?

Answered: 1 week ago