Knect-Dev / Knect-Dev-Frontend

Front End for Knect Dev Application
https://www.knect.dev/home
MIT License
0 stars 0 forks source link

Knect.dev

Contributors Forks Stargazers Issues MIT License


Logo

Knect.Dev

Knect.Dev description
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. UML
  5. Data Models
  6. Access Control List
  7. Routes
  8. Roadmap
  9. Contributing
  10. License
  11. Contact
  12. Acknowledgments

About The Project

Deployed Page

This repository implements phase two (frontend) of a two phase project (full web application deployment).

The goal of this project is to create a Targeted Companies & High-Volume Tracking List that allows those seeking jobs to effectively document the jobs they have applied for as well as thier most up to date interactions. Phase one, the backend of this project, focused on building and deploying a reliable backend with robust schemas and database models. Phase two, the frontend portion, focused on building a user-friendly interface in React with and Ionic framework to streamline data input as well as visualize metrics in real time of your job search.

(back to top)

Built With

General:

Frontend:

Backend:

Hosted On:

(back to top)

Getting Started

To get a local copy up and running follow these simple example steps.

Prerequisites

This project uses npm node package manager to install the required modules.

Installation: Backend

  1. Clone the repo
    git clone https://github.com/Knect-Dev/Knect-Dev-Backend.git
  2. Install NPM packages
    npm install i
  3. Enter your API in .env

    PORT = 3000
    API_KEY = 'ENTER YOUR API';
    SECRET = 'YOUR SECRET';
    

(back to top)

Installation: Frontend

  1. Clone the repo
    git clone https://github.com/Knect-Dev/Knect-Dev-Frontend.git
  2. Install NPM packages
    npm install i

(back to top)

Usage

  1. Create a new user account or sign in to an existing account.

  2. Upon signing in for the first time, the Jobs list will be blank, so click on the green (+) button in the upper right corner to open up the form for adding a new Job opportunity to your collection.

  3. In the form that pops up, click the padlock icon in the bottom left corner to unlock the form for and begin editing.

  4. Job Title and Company are required fields; all others are optional.

  5. To add or change the company, type part of search companies to see if the company already exists in the database.

(back to top)

UML

uml

(back to top)

Data Models

This project utilized dynamoose and DynamoDB and the following data models...

User Model

'Users' {
  id: PRIMARY KEY, required,
  name: STRING, required,
  password: STRING, required,
  token: STRING, required,
  email: STRING, required,
  role: STRING, required,
}

(back to top)

Job Model

'Jobs' {
  id: PRIMARY KEY, required,
  company: STRING, required,
  title: STRING, required,
  jobId: STRING,
  jobUrl: STRING,
  appliedDate: DATE,
  stage: STRING, required,
  status: BOOLEAN, required,
  openPositions: INTEGER,
  location: STRING,
  technologies: STRING,
  targeted: BOOLEAN, required,
  offer: INTEGER,
  notes: STRING(1250),
}

(back to top)

Company Model

'Companies' {
  id: PRIMARY KEY, required,
  name: STRING, required,
  logo: STRING,
  leader: STRING,
  founded: STRING,
  hq: STRING,
  size: INTEGER,
  product: STRING,
  clients: STRING,
  mission: STRING(500),
  companyUrl: STRING,
  careersUrl: STRING,
}

(back to top)

Contact Model

'Contacts' {
  id: PRIMARY KEY, required,
  name: STRING, required,
  company: STRING,
  position: STRING,
  email: STRING,
  linkedIn: STRING,
  phone: STRING,
  photo: STRING,
  notes: STRING,
}

(back to top)

Data Associations and User Experience

We decided early on that we wanted to use a relational database model for a few reasons:

  1. We wanted our Users to have a unique user experience, and allow them to create Jobs that were unique to them
    • We did this by setting UserId within the Job record on creation, establishing a One-to-Many association between Users and Jobs.
    • Upon logging in, the User's unique jobs will render to the screen.
  2. We also wanted our Companies to be community based, meaning a Company is created once, then edited by all
    • Companies also have a unique id, and Job records utilize this when created or edited, and create an association within the database.
    • When a change is made to a company by a User, the database is updated and the new info is propogated to all other Users.
  3. The Jobs are the crux of the application, in functionality as well as associations
    • Jobs, as mentioned before, contain both a UserId and a CompanyId which establish associations between all three models.
    • These associations are then used to conditionally render the Company associated to the job, and the Contacts related to both the Job and the Company
  4. Lastly, Contacts are related to all three of the previous models
    • The Contacts are rendered based on UserId, JobId, and CompanyId.

(back to top)

Access Control List

(back to top)

Routes

User Routes

(back to top)

Job Routes

(back to top)

Company Routes

(back to top)

Contact Routes

(back to top)

Auth

(back to top)

Roadmap

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

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Contact

Spencer Tower - Github - Linkedin

Andrew Enyeart - Github - Linkedin

Daniel Jackson - Github - Linkedin

Kellen Linse - Github - Linkedin

Matt Miguel - Github - Linkedin

Erik Savage - Github - Linkedin

Chris Harden - Github - LinkedIn

Project Link: https://github.com/Knect-Dev/Knect-Dev-Backend

(back to top)

Acknowledgments

(back to top)

Resources