https://github.com/rohitawate/summit
The synchronization server for Everest.
https://github.com/rohitawate/summit
cloud-sync everest nodejs rest-api socketio-server synchronization
Last synced: 2 months ago
JSON representation
The synchronization server for Everest.
- Host: GitHub
- URL: https://github.com/rohitawate/summit
- Owner: RohitAwate
- License: apache-2.0
- Created: 2018-09-10T16:47:46.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-09-15T14:09:32.000Z (over 6 years ago)
- Last Synced: 2025-04-10T04:05:54.618Z (2 months ago)
- Topics: cloud-sync, everest, nodejs, rest-api, socketio-server, synchronization
- Language: JavaScript
- Homepage:
- Size: 33.2 KB
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# What is Summit?
Summit is the upcoming **synchronization server** for the Everest REST client. It will facilitate the synchronization of your Everest projects between multiple devices and multiple members of your team.It will be available as a **subscription-based cloud-service**. Plans will be declared early next year when Everest is officially released.
Summit will be written in **Node.js**.
# Components
### RESTful API
- Summit will **primarily** be powered by a RESTful API. Everest will make calls to it through `SummitDataManager` which will implement `DataManager` and thus can be managed by `SyncManager`.
- This API shall provide endpoints for all the core data structures in Everest such as the `ProjectState` and its sub-structures such as `Request`, for example.
- Almost every endpoint will support `GET`, `POST`, `PATCH` and `DELETE` requests.
###### Get all requests from a project
```
GET /api/projects//requests/
```###### Change the target and HTTP method of a particular request
```
PATCH /api/projects//requests/{
"target": "https://anapioficeandfire.com/api/characters/1303",
"httpMethod": "POST"
}
```
- This API will use **Express**.### Live Sync
- For team projects, when one team member makes some changes to the Everest Project, they will need to be communicated to other members of the team.
- Summit will need to push them to these clients. This will be achieved using Socket.IO.
- Everest will implement a new `SummitDataManagerAsync` class which will contain callbacks which will react to events received from the Socket.IO channel.### Database
- Summit will use MongoDB as a database.# Open Source
Summit is licensed under the **Apache 2.0 License**. It is made open-source so that users have the **option to self-host** the server and configure their Everest installations to use it.