GithubHelp home page GithubHelp logo

mawais54013 / dashboard Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 2.0 7.88 MB

Dashboard This application is designed to help assist users during the job search process.

Home Page: https://dashboardv1.herokuapp.com/

License: MIT License

HTML 1.51% JavaScript 89.49% CSS 9.00%

dashboard's Introduction

Dashboard

This application is designed to help assist users during the job search process. With so many job search websites around, it's a challenge to get everything organized to land a job. This app helps organizes your schedule with reminders, shows jobs available from GithubJobs and HackerRank, and displays current news from the tech world. Along with features such as meetup locations, weather, and user login authentication to make the job search process easier.

index

Getting Started

Site Link: Dashboard

Once your on the welcome page you can login or register as a new user. When the user want to register, they will be asked to type in their name, location, and career interest that will be used to display their Dashboard.

Homepage

The main dashboard page includes a calendar, clock, and daily agenda for the user. The tabs range from weather, jobs available, tech news, and local meetup. Everything the user needs to survive the job search process.

Prerequisites

Your can access the site from any interest browser including Google Chrome, Firefox, or Safari.

Deployment

This site is deployed through heroku, and uses Mongo Database to store information about the user and their components such as locations and reminders.

Built With

  • React.js
  • Javascript/JQuery
  • MongoDB
  • Material UI
  • Heroku
  • Yarn/Npm
    • Material UI
    • Express
    • Mongoose
    • Passport
    • Axios
    • Path
    • Particle.js
    • React Calendar
    • React Clock
    • React Agenda
    • React Moment
    • Prop Type
    • Anime.js

APIs and Libraries

  • HackerNews

    Scrape the news from the website and deploy to dashboard so users know about current events in the tech industry.

  • HackerNews Jobs

    Scrape jobs available in the Bay Area so user can know which companies are hiring for desired roles.

  • Github Jobs

    Another source to search for jobs in the area with extra feature like images, description, and location.

  • Meetup API

    Shows events happening in the user's area so they can attend and expand their network while also learning about new technology.

  • Open Weather API

    Shows current weather of location. User can type the zipcode of their location and receive weather information about the area.

  • Material-UI

    React component that implements Google's Material Design

Wireframe and Layout

The layout of this application is built entirely with React.js. With MongoDB used to store user information. We decided to use Mongo because their was only one relationship for this project instead of multiple that require using other databases. The main design for this project was to make it easy for the user to navigate through the app to find jobs, set reminders, or check weather.

Tasks:

Here is the scheme of our contributions to the project:

  • Setting up packages
  • API configuration
  • Styling
  • Assisting with setting up routes and using React.js

Many add-on features displayed in the dashboard such as the calendar and the clock are packages found on React.

  • react-calendar is used to display the calendar for the user. A simple component that only requires the current date.
    <Calendar
    onChange={this.onChange}
    value={this.state.date}
    />
    
  • react-clock is similar to calendar because it requires the current date and the rest of the functionality is being done with the package.
    <Clock
    value={this.state.date}
    />
    
  • react-agenda is used for users to display their activity throughout the week with the options to adding more. Each item will have their own id, the name of the event, the color, and the dates which the event will be happening as seen in the following code:
    {
    _id           :'event-5',
    name          : 'Group activity',
    startDateTime : new Date(now.getFullYear(), now.getMonth(), now.getDate()+3, 10, 0),
    endDateTime   : new Date(now.getFullYear(), now.getMonth(), now.getDate()+3, 16, 30),
    classes       : 'color-4'
    }
    

The following shows how most of our API's are structured to receive data from the sources and store them into a state to use later.

  • Once a button is clicked on the side bar, a request is sent to the API. Then the data is stored at a state which we use later with map to display each needed information for the user like links, title, etc.
hackerJobs = () => {
    API.getHackerJobs()
        .then(res => {
            this.setState({ hackJob: res.data})
            console.log(this.state.hackJob);
        })
}

For styling we used pics from unsplash.com and coloring from material-ui. But for the animation on the welcome page, we used particle.js and anime.js. Anime.js is used to create the logo for the site, whereas particle.js makes the effects and background movements with the code below:

  <Particles className="visibleInBack"
        params={{
            particles: {
                line_linked: {
                    color: "#ff78ff",

                },
                number:{
                    value:120,
                },
                shape:{
                    type:"circle",
                },
                move:
                    {
                        enable:true,
                        speed:6,
                    }
            }
            ,
            interactivity: {
                "detect_on": "canvas",
                "events": {
                    "onhover": {
                        "enable": true,
                        "mode": "repulse"
                    },
                    "onclick": {
                        "enable": true,
                        "mode": "push"
                    },
                    "resize": true
                },
                "modes": {
                    "grab": {
                        "distance": 50,
                        "line_linked": {
                            "opacity": 1
                        }
                    },
                    "bubble": {
                        "distance": 400,
                        "size": 200,
                        "duration": 2,
                        "opacity": 8,
                        "speed": 5
                    },
                    "repulse": {
                        "distance": 200,
                        "duration": 0.4
                    },
                    "push": {
                        "particles_nb": 300
                    },
                    "remove": {
                        "particles_nb": 10
                    }
                }
            },
            detect_on:"canvas",
        }}
/>

Each circle has a set color with the speed movement. Interactivity allows effects to occur if a hover happens around the circles. If a hover is detected then the area is cleared by 50 distance around the hover. The circles are pushed together until no hover is detected. If a user clicks on the animation the more circles are created with slower animation with the limited DOM size.

Put your tasks here

Put your tasks here

Authors

Acknowledgments

  • UCB Extension Coding Bootcamp

dashboard's People

Contributors

mawais54013 avatar jsutliff avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.