Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/roerohan/meetingsapi
A simple meetings API built using Go.
https://github.com/roerohan/meetingsapi
api backend go golang mongo-driver mongodb website
Last synced: about 2 months ago
JSON representation
A simple meetings API built using Go.
- Host: GitHub
- URL: https://github.com/roerohan/meetingsapi
- Owner: roerohan
- License: mit
- Created: 2020-10-18T10:46:20.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2020-10-19T10:23:29.000Z (about 4 years ago)
- Last Synced: 2024-11-16T16:00:24.905Z (about 2 months ago)
- Topics: api, backend, go, golang, mongo-driver, mongodb, website
- Language: Go
- Homepage:
- Size: 36.1 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
[![Issues][issues-shield]][issues-url]
MeetingsAPI
A simple API built using Go.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
## Table of Contents
* [About the Project](#about-the-project)
* [Built With](#built-with)
* [Getting Started](#getting-started)
* [Prerequisites](#prerequisites)
* [Installation](#installation)
* [Usage](#usage)
* [Roadmap](#roadmap)
* [Contributing](#contributing)
* [License](#license)
* [Contributors](#contributors-)## 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
* [Go](https://golang.org/)
* [MongoDB](https://www.mongodb.com/)
* [Mongo-driver Go package](https://github.com/mongodb/mongo-go-driver)## Getting Started
To get a local copy up and running follow these simple steps.
### Prerequisites
- Go
- MongoDB### Installation
1. Clone the Repo
```sh
git clone https://github.com/roerohan/MeetingsAPI.git
```
2. Install Go packages
```sh
go mod tidy
```## Usage
To run the project, you can use:
```sh
go run src/main.go
```1. POST `/meetings`: This route accepts a JSON of the following format:
```json
{
"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.2. GET `/meetings?participant=`: 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.
3. GET `/meetings?start=&end=`: This route returns a list of all meetings that occur in the time duration between `start` and `end`.
4. GET `/meeting/`: This route returns the meeting containing the ID as specified in the request parameter.
## Roadmap
See the [open issues](https://github.com/roerohan/MeetingsAPI/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 RequestYou are requested to follow the contribution guidelines specified in [CONTRIBUTING.md](./CONTRIBUTING.md) while contributing to the project :smile:.
## License
Distributed under the MIT License. See [`LICENSE`](./LICENSE) for more information.
[roerohan-url]: https://roerohan.github.io
[issues-shield]: https://img.shields.io/github/issues/othneildrew/Best-README-Template.svg?style=flat-square
[issues-url]: https://github.com/roerohan/MeetingsAPI/issues