A student project for Learn JavaScript with Eric Elliott.
Want to work as a team? Find a coding buddy in the student chat.
You have a great new project, but you need a team to build it. You can write a project description, create and describe the roles you need to fill, then let users submit applications to join the team. Review applications, and click to accept new collaborators or schedule interviews with applicants.
- Allow users to sign up. Use passwordless authentication. Consider GitHub authentication. During signup, the user should be able to create a profile with a brief bio and relevant links to LinkedIn, GitHub, and a portfolio URL.
- After signing in, the user should be directed to a page listing existing projects, with a button to add a new project.
- Create a form to submit a new project. Save the project to a database on submit.
- A project detail page should allow users to view a project from the list. The project page should list all open roles. Each open role should have a button allowing the user to apply for the role. The project owner should be able to see a list of applants. Next to each applicant should be an "Accept" button.
- For applicant evaluation, add an "Interview" button to the applicant list that project owners see. Create a virtual assistant that will discover free times and schedule Google Hangout interviews.
- Give the virtual assistant natural language processing skills. It should be able to understand things like "I'm free next Tuesday at 1pm EST", or "Any time after 2pm tomorrow."
- When an applicant is accepted for a role, send a welcome email with a link to the Contributing guide and details for team meetings.
- All other applicants should be notified that the role has been filled, and invited to apply for other roles. Use an email service such as Mandrill or Sendgrid for email delivery.
- Instead of Google Hangouts, create an integrated interview experience using WebRTC.
- Fork this repo
- Implement your solution.
- Open an issue with a link to your fork.
To get credit, you must open an issue with a link to your fork.