Skip to content

A full-stack app built for developers to organize their job search, track job applications, store contacts, and practice for interviews.

Notifications You must be signed in to change notification settings

elhoussine/devfocus

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

202 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DevFocus - Engineering Job Search, Refactored

screenshot_DF


Screen Shot 2022-05-02 at 4 12 01 PM

Overview

DevFocus is a job search organizer built for software developers to organize the job search, and land their dream roles. Users have the ability to:

  • Track jobs that they are interested in, and check off the applied jobs
  • Track the tech professionals they have reached out to for networking and industry insight
  • Plan out a leetcode / data structures & algorithms practice plan, and check off problems completed from the Blind 75 problem list

Technologies

  • MongoDB
  • Mongoose
  • Express
  • React (React-Table)
  • Node
  • Axios
  • HTML
  • CSS

Code Highlights

Each page in DevFocus features a spreadsheet-style table, which is powered by the React-Table library. Using React-Table allows for a smooth user-friendly experience, while cutting down development time. For example, the following code shows how the table columns are named and initialized:

const columns = React.useMemo(
    () => [
      {
        Header: "Name",
        accessor: "name", // accessor is the "key" in the data
        // Filter: FilterAlgosColumn
      },

      {
        Header: "Category",
        accessor: "category",
        // Filter: FilterAlgosColumn,
      },

      {
        Header: "Difficulty",
        accessor: "difficulty",
        // Filter: FilterAlgosColumn,
      },

      {
        Header: "Problem Link",
        accessor: "link",
        // Filter: FilterAlgosColumn,
        Cell: (props) => {
          return (
            <a href={props.row.original.link}>{props.row.original.link}</a>
          );
        },
      }
    ],
    []
  );



Taking a look at the Algos table on the live site, you might have noticed that the leftmost column "Done" and rightmost column for the solution button are not initialized in the columns component above. The "Done" column was placed into the mapping function at i = 0, and the "Solution" column was added after the mapping function. By leveraging the React-Table libarary, we were able to adjust and modify the table in this way when needed:

<thead>    // Table Header row
  {headerGroups.map((headerGroup) => (
    <tr {...headerGroup.getHeaderGroupProps()}>
      {headerGroup.headers.map((column, i) => {
        if (i === 0) {
          return <th style={{ "text-align": "center" }}>Done</th>;    // Done column
        }
        return (
          <th {...headerGroup.headers[i - 1].getHeaderProps()}>
            {headerGroup.headers[i - 1].render("Header")}
          </th>
        );
      })}
      <th></th>    // Solution column
    </tr>
  ))}
</thead>

About

A full-stack app built for developers to organize their job search, track job applications, store contacts, and practice for interviews.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 81.5%
  • CSS 12.8%
  • SCSS 4.1%
  • HTML 1.6%