A fullstack JavaScript+React application that helps job-seekers track their professional network. Users add target companies, identify contact people, and track networking milestones, including:
- Initiating one-on-one contact
- Tracking responses
- Following up
And ultimately, getting referred!
As a job-seeker, I wanted to build an app that fellow job-seekers could use to track professional networking. As an introvert, I wanted a project that would help me learn about networking, break it down into simple milestones, and get excited to meet new people.
- Do something interesting or useful
- Be a fullstack app using HTML, CSS, React, Node, Express, and Mongoose
- Client and API should be deployed separately and stored in separate GitHub repos.
- Client- and server-side code should be tested use TravisCI for continuous integration and deployment.
- App should be responsive, and should work just as well on mobile devices as it does on desktop devices.
- Code should be high quality, error free, commented as necessary, and clean.
- Styling on the client should be polished.
- Use vanilla CSS for styling capstones. Frameworks like Bootstrap are not permitted.
- Have a comprehensive README file.
- Have a landing page that explains what the app does and how to get started, and the pages required to deliver functionality.
- Deploy a live, publicly-accessible version of the app.
- A demo user account and indicate on the landing page how to use it.
Client and API were deployed separately and stored in separate GitHub repos.
- JavaScript [ES6 & JSX]
- React
- HTML
- CSS [Flexbox & Grid]
- Enzyme
- Node.js
- Express
- Mongo
- Mongoose
- JWT Authentication
- bcryptjs
- Passport
- Mocha
- Chai
- Heroku
- TravisCI
- mLab
Title Page:
Dashboard:
Company Detail:
Person Detail:
Person Form:
Person Edit:
- Bearer Authentication with JSON Web Token
- Must provide valid Username and Password in request header
- If authentication succeeds, a valid 7d expiry JWT will be provided in response body
- Must provide Username and Password in request body
- If successful, a valid 7d expiry JWT will be provided in response body
- Retrieves companies from the Referred database, Companies collection
- Must provide valid JWT via Bearer Authentication
- If authentication succeeds, all companies added by the logged in user will be returned
- Retrieves people from the Referred database, People collection
- Must provide valid JWT via Bearer Authentication
- If authentication succeeds, all people added by the logged in user will be returned
- This endpoint adds a company to the Referred database/Companies collection
- Must provide company object in request body
- Must provide valid JWT via Bearer Authentication
- This endpoint updates a single company in the Referred database/Companies collection
- Must provide company ID as route parameter
- Must provide company object in request body
- Must provide valid JWT via Bearer Authentication
- This endpoint deletes a company from the Referred database/Companies collection
- Must provide company ID as route parameter
- Must provide valid JWT via Bearer Authentication
- This endpoint adds a person to the Referred database/People collection
- Must provide person object in request body
- Must provide valid JWT via Bearer Authentication
- This endpoint updates a person in the Referred database/People collection
- Must provide person ID as route parameter
- Must provide person object in request body
- Must provide valid JWT via Bearer Authentication
- This endpoint deletes a person from the Referred database/People collection
- Must provide person ID as route parameter
- Must provide valid JWT via Bearer Authentication