rails-video-chat-app
rails-video-chat-app copied to clipboard
📹Video Chat App
Rails Video Chat App
https://webrtc-on-rails.herokuapp.com
TODO
- [ ] WebRTC Support across different browsers
- [ ] Test coverage for WebRTC JS stuff
- [ ] Front End UI
- [ ] React on Rails is integrated - need to make UI components for some items. maybe some of the forms?
- [ ] Figure Out TurboLinks stuff
- [ ] Create system tests
- [ ] Create API + API tests
- [ ] Error handling for non-existent pages (web + api level)
- [ ] Handle web rtc connection when one peer closes browser
- [ ] Warn users on iOS mobile devices that this app won't work. React-native app coming soon (also, app doesn't work the greatest in firefox. oof)
As a user, I can...
- [x] create a room on the fly
- [x] Enter into an existing room
- [ ] Mute my microphone
- [ ] Turn my video off
As a guest, I can...
- [x] Create temporary rooms that expire in 24 hours (rake task)
- [x] "register now to claim this room"
As a member, I can...
- [x] Claim a room name
- [x] Password protect my room - some kind of authorization
- [ ] Choose a brand color for room
API
Authentication Using Devise Token Auth
Users
Registration
POST Endpoint:
https://webrtc-on-rails.herokuapp.com/api/v1/auth
Request Body:
{
"email": "[email protected]",
"password": "foobar",
"password_confirmation": "foobar"
}
200 - Response Body:
{
"status": "success",
"data": {
"id": 1,
"email": "[email protected]",
"provider": "email",
"uid": "[email protected]",
"created_at": "2017-10-06T05:22:49.774Z",
"updated_at": "2017-10-06T05:22:49.998Z"
}
}
200 - Response Headers: (these must be passed along every authenticated request)
access-token → fdBnuoN8VtlOLLW-cKB58Q
token-type → Bearer
client → ucLUd-EIkM-ETYLWFSIL4w
expiry → 1508475926
uid → [email protected]
422 - Response Body:
{
"status": "error",
"data": {
"id": null,
"email": "[email protected]",
"created_at": null,
"updated_at": null,
"provider": "email",
"uid": "[email protected]"
},
"errors": {
"email": [
"has already been taken"
],
"full_messages": [
"Email has already been taken"
]
}
}
Signing In
POST Endpoint:
https://webrtc-on-rails.herokuapp.com/api/v1/auth/sign_in
Request Body:
{
"email": "[email protected]",
"password": "foobar"
}
200 - Response Body:
{
"data": {
"id": 1,
"email": "[email protected]",
"provider": "email",
"uid": "[email protected]"
}
}
200 - Response Headers: (these must be passed along every authenticated request)
access-token → fdBnuoN8VtlOLLW-cKB58Q
token-type → Bearer
client → ucLUd-EIkM-ETYLWFSIL4w
expiry → 1508475926
uid → [email protected]
401 - Response Body:
{
"errors": [
"Invalid login credentials. Please try again."
]
}