Team Development
Node, MySQL , Hash Coded Passwords, & External APIs
26 Hours

Arthur makes your meetings more effective than your competitors by introducing you to your client before you ever sit down together. What are the client’s interests? What’s the latest news from their organization? What does he or she look like? Arthur has the answers!

Arthur uses Passport authentication to encrypt the user’s password and stores the hash code in the MySQL database using the Sequelize model structure. Each user has a listing of clients with as much or as little data as the user would like to include. The more data included, the more accurate and thorough the briefing’s result will be.

Arthur will search LinkedIn for the user’s company information, the company’s blurb, and the latest few posts the company has made on the network. Arthur will then find the user’s profile information (including name, profile picture, and other available data) from Twitter’s API, as well as the client’s last few tweets. Finally, Arthur will search the New York Times’ API for the latest headlines about the client’s company.

My contribution to the project included setting up the passport integration and researching the LinkedIn API. Unfortunately, we were unable to retrieve as much data as we had hoped from LinkedIn unless we paid to use their Partner Program¬† – thus, the client’s job title and profile picture are being pulled from Twitter instead. I also designed the main logo. I setup the Heroku server and linked the ClearDB MySQL database. I also assisted with final bug testing.

Files are organized using the MVC stack. Our front-end designer chose to use custom CSS and standard HTML public files, as opposed to a templating engine. GET and POST routes are used to collect the necessary data; they require the user to be logged in & authenticated to access the API points.

Full Stack Node Application
User Login With Hash Coded Passwords
MySQL Data Storage
Express Server Integration
Sequelize MySQL Handling
LinkedIn Public API Calls
Deployed Project
Code Repository
Deprecation Notice

This project has not been maintained since 2018 and might not be functional and/or secure.

Next Steps

One of the key components to powering this app was to use significantly more data from LinkedIn than the final product. After hours of research, the solution appears to be to join LinkedIn’s partnership program and pay to access the content we were looking for. As a student project, that was out of our scope.

We would also like to provide this information via email instead of using a login web feature, but again, due to the scope of a student project (in a class that teaches how to build web apps, not sending email), this was not an option for this iteration of the project.

Finally, the data for your meetings should automatically be produced using a link to your existing Google Calendar. Arthur will automatically generate a briefing for your review each morning based on the schedule found in your calendar.