42 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
id: bd7150d8c442eddfafb5bd1c
 | 
						|
title: P2P Video Chat Application
 | 
						|
challengeType: 4
 | 
						|
forumTopicId: 302366
 | 
						|
dashedName: p2p-video-chat-application
 | 
						|
---
 | 
						|
 | 
						|
# --description--
 | 
						|
 | 
						|
**Objective:** Build a [Replit](https://replit.com/) app that is functionally similar to this: <https://p2p-video-chat-application.freecodecamp.rocks/>.
 | 
						|
 | 
						|
Fulfill the below [user stories](https://en.wikipedia.org/wiki/User_story). Use whichever libraries or APIs you need. Give it your own personal style.
 | 
						|
 | 
						|
**User Story:** Upon arriving, the browser will prompt me to access my camera and microphone.
 | 
						|
 | 
						|
**User Story:** After I give it permission, I am prompted to type in a room name.
 | 
						|
 | 
						|
**User Story:** Once I type in the room name, a room will be created if no room of that name existed before.
 | 
						|
 | 
						|
**User Story:** A friend of mine can subsequently go to the same website, type in the same room I entered, and join the same room, then enter into a video chat with me.
 | 
						|
 | 
						|
**User Story:** If I type in a room name, and there are already two people in that room, I get a notification that the room is full.
 | 
						|
 | 
						|
**User Story:** Anyone can create or join any room. And there can be any number of rooms, but all of them must have unique names.
 | 
						|
 | 
						|
**User Story:** I can choose to not permit the site to access my microphone and webcam. If I choose not to do this, or if some other driver problem occurs, I see an error message saying these are required.
 | 
						|
 | 
						|
**User Story:** When I choose to cancel the room name input step, or if I type in no name, or just spaces, it should again ask me again to type in a valid room name.
 | 
						|
 | 
						|
**User Story:** If one of the two people in the room get disconnected, they can reconnect to the same room and continue chatting.
 | 
						|
 | 
						|
Once you've finished implementing these user stories, enter the URL to your live app and, optionally, your GitHub repository. Then click the "I've completed this challenge" button.
 | 
						|
 | 
						|
You can get feedback on your project by sharing it on the [freeCodeCamp forum](https://forum.freecodecamp.org/c/project-feedback/409).
 | 
						|
 | 
						|
# --solutions--
 | 
						|
 | 
						|
```js
 | 
						|
// solution required
 | 
						|
```
 |