Skip to content

Latest commit

 

History

History
142 lines (101 loc) · 5.34 KB

README.md

File metadata and controls

142 lines (101 loc) · 5.34 KB

Find a Dev

Find developers who can assist your learning process in certain technologies!
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Lessons Learned
  6. Contact

About The Project

Screen Shot 2022-10-07 at 2 54 33 PM


Find developers who are willing to support your learning journey in software! You can cater your search by popular web technology. For users who are interested in offering their help, please click the "Offer Help" button and subimit your information to get posted on the help board!

(back to top)

Built with

  • MongoDB
  • Express.js
  • Node
  • EJS
  • JavaScript
  • CSS

(back to top)

Getting Started

Installation

In order to clone a local copy of this repository, please follow the steps below.

  1. Navigate to the folder you would like to store the project
  2. Clone the repo
    git clone https://github.com/brianschnee/find-a-dev.git
  3. Switch into the directory that was just created
    cd find-a-dev
  4. Install NPM packages
    npm install
  5. Create a .env file at the base of your directory called .env
  6. Enter your MongoURI string in .env with the key DB_STRING
    DB_STRING="<Replace everything in quotes with MongoDB Connection String>"

(back to top)

Usage

In order to use this application. Navigate to the find-a-dev website and search through a list of developers who are willing to support your journey in tech. You may filter through developers by popular technologies such as "Node.js" or "MongoDB." To sign up and offer help to our community, please click the Offer Help button and submit your information for other devs to see. Your information will be stored in our Mongo DB and rendered for users to see.

Screen Shot 2022-10-07 at 2 54 00 PM

(back to top)

Roadmap

  • Convert to Mongoose
  • Convert to MVC Architecture
  • Add Authentication to confirm user social media accounts using Passport.js or Auth0
  • Add mobile compatibility by created responsive queries
  • Add Pagination to reduce render size when user base grows
  • Add user direct messaging using Socket.io

See the open issues for a full list of proposed features (and known issues).

(back to top)

Lessons Learned

  • How to create UI components that send requests to my express server, which will filter through a collection of developers stored in a mongo database and then render the results back to the client.
  • When prompting for a user's twitter profile, I encountered the dangers of allowing links to be hidden behind icons in my UI. To protect against malicious intent, I now prompt for a users twitter profile name (rather than the full URL) which will be appended to a twitter url. This makes it so that malicious links provided by users will result in a 404 error from twitter, because the route is set to detect user profile names.
  • Allowing users to submit their own profile pictures comes at the cost of potentially allowing innapropriate content. For this project, I had been able to pull profile images from github without having to access the platforms api/requiring OAuth. I do so by appending ".png" to a github profile link, which then redirects to a source file I am able to render. During later iterations of this app, I will implement OAuth in order to provide a more accurate/secure user experience.

(back to top)

Contact

Twitter - @BrianSchneeDev

Email - Contact Me

Project Link: https://github.com/brianschnee/find-a-dev

(back to top)