Categorygithub.com/roerohan/MeetingsAPI
module
0.0.0-20201019102320-5e137a4895de
Repository: https://github.com/roerohan/meetingsapi.git
Documentation: pkg.go.dev

# README

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 :smile:.

License

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

# Packages

No description provided by the author