Skip to content

roerohan/MeetingsAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Issues


MeetingsAPI

A simple API built using Go.
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents

About The Project

A simple REST API is built for scheduling meetings as a starter project for Go. This has routes such as /meetings and /meeting to add meetings, and get meetings by their id. You can also filter meetings for a participant and by the start time and end time of the meeting.

Built With

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

  • Go
  • MongoDB

Installation

  1. Clone the Repo
git clone https://github.com/roerohan/MeetingsAPI.git
  1. Install Go packages
go mod tidy

Usage

To run the project, you can use:

go run src/main.go
  1. POST /meetings: This route accepts a JSON of the following format:
{
    "title": "something",
    "participants": [
        {
            "name": "something",
            "email": "something",
            "rsvp": "Yes"
        }
    ],
    "startTime": 1603059170289,
    "endTime": 1603059290289
}

Note: This route ensures that a new meeting can't be added if a participant of the new meeting has already RSVP-ed "Yes" or "Maybe" to a different meeting. If it does, the list of meetings which conflict with the current meeting is returned.

  1. GET /meetings?participant=<email>: This route takes the email ID of the participant and a list of meetings which the participant is included in, irrespective of the RSVP status.

  2. GET /meetings?start=<startTimestamp>&end=<endTimestamp>: This route returns a list of all meetings that occur in the time duration between start and end.

  3. GET /meeting/<id>: This route returns the meeting containing the ID as specified in the request parameter.

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'feat: Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

You are requested to follow the contribution guidelines specified in CONTRIBUTING.md while contributing to the project 😄.

License

Distributed under the MIT License. See LICENSE for more information.

Releases

No releases published

Packages

No packages published

Languages