Giter VIP home page Giter VIP logo

johannesstroebele91 / github-hr Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 1.0 523 KB

This dashboard supports human resources during the technical screening process of the GitHub portfolio of software development job applicants

Home Page: https://github-hr.vercel.app

License: MIT License

TypeScript 58.15% HTML 28.44% SCSS 13.40%
dashboard angular github-api ng2-charts flexbox data-visualization dashboards github-api-v4 figma angularmaterial

github-hr's Introduction

1. Summary

This mobile first web application was developed for the project 119400A (Prof. Dr. Joachim Charzinski) at the Stuttgart Media University. In 2024, I did a complete overhaul to make it work with the present Angular, Angular Material, and ng2-charts versions.

The goal is providing the human resources a more detailed picture of the coding qualifications GitHub users. The reason for this is that more and more software development job applicants use GitHub to show their coding projects.

For example, which programming languages they most frequently code with, how many people follow them and how often they code in general. This may help them to easier and better evaluate the technical coding qualifications of the applicants.

2. Application

The application is explained in more detailed on the wiki page. The website can ba accessed locally by using the test username ([email protected]) and password (password).

3. File Structure

The code for this web application was developed, versioned, and managed using Git. A GitHub repository was used for storing the application code online. This is a quick overview of the files:

  • dist: the compiled code/libraries meant for production
  • node_modules: libraries and dependencies for packages, used by Node package manager
  • src: files to build and develop the project (original source files), before being compiled into fewer files to dist/ directory
    • components: e. g. login and search
    • assets: e.g. logo, avatar picture
    • environments: environment for production
    • models: interfaces for the user, repository, and login-credentials
    • services: for making GitHub REST API calls and exams (hide and show certain elements)
    • pages: includes all of the application HTML pages
    • stylesheets: styling of the application
    • main.ts: bootstraps the application (it loads everything and controls the startup of the application)
    • index.thml: starting point of the application (JavaScript code for inserting reusable components, login functionality, working links due to different routing with Express)
  • .gitignore: text file that tells Git which files or folders to ignore in a project
  • angular.json: provides workspace-wide and project-specific configuration defaults for build and development tools provided by the Angular CLI
  • package.json: provides metadata of the project as well as handles the dependency management with Node package manager
  • proxy.conf.json: used for setting up proxy for API requests
  • server.js: main configuration file for the Express application to handle actions such as the HTTP server, proxying API requests, routing, and serving of static files

4. Design Mockup

It was created with Figma based on the Concept. The link to the design can be found here: Figma GitHub User Dashboard

image

5. Technology Stack

A more detailed explanation can be found on the wiki page.

6. Development and deployment instructions

A more detailed explanation can be found on the wiki page

  • Development Server: Run ng serve for a local development server accessible at http://localhost:4040/. Changes to source files trigger automatic reloading.
  • Build: Run ng build to create production-ready build artifacts stored in the dist/ directory. Use the --prod flag for optimized production builds.
  • Production Deployment: After building, run node server.js to start the production server. Deployment can be automated using Vercel's continuous integration features.

7. Endpoints

A more detailed explanation can be found on the wiki page

  • "/githubapi/": getting user, repos, and coding languages data from the GitHub API

8. Lessons Learned

A more detailed explanation can be found on the wiki page

  • It was very insightful to conduct user interviews
  • Designing a high fidel design mockup took to long with Figma (better use Balsamiq and spent more time on the development)
  • Services for making HTTP requests to the GitHub API was most interesting to learn
  • Angular Material reactive forms
  • Angular GET-, PUT-, POST-requests with realtime Firebase
  • Email/Password registration and login via Firebase authentication
  • Protect routs with authentication guards
  • Interceptors for checking authentication automatically for each request
  • Deployment with Vercel

9. Potential Improvements

A more detailed explanation can be found on the wiki page

  • Implement comparison of one GitHub user with others (e. g. with charts and tables)
  • Create more and better visualizations to give even deeper insights using ng2-charts
  • Implement search for specific coding language for all users (filters would be great)
  • Setup database for registered users and connect it to the application
  • Implement testing with e. g. Karma and Jasmine

github-hr's People

Contributors

dependabot[bot] avatar dritonukic avatar johannesstroebele91 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

knirpsfass

github-hr's Issues

Clean code

  • remove unecessary code form directory
  • Remove and check TODOs in code
  • Insert and check comments

Building MVP for verifying GitHub API as a valid data basis

Finalize docu (16.08.2020)

  • Structure
  • 1. Home
  • 2. Online Reseach
  • 3. Interviews
  • 4. Project Goals
  • 5. User Needs
  • 6. Concept
  • 7. Design Mockup
  • 8. Technology Stack
  • 9. Application Explanation
  • 10. Lessons Learned
  • 11. Potential Enhanvements

Research the project management

Result:

  1. research: empathise, identify requirements, ideate, plan
  2. concept: user flow, story board, core vs additional features
  3. design: styles, layout, typography, colors, fonts
  4. build: components, services, REST api
  5. completion: tests, rollout, presentation

Conduct interviews

  • Organize interviews
  • 1. Interview pretest (24.03.2020)
  • 2. Interview (26.03.2020)
  • 3. Interview (27.03.2020)
  • 4. Interview (27.03.2020)
  • 5. Interview (27.03.2020)
  • 6. Interview (01.04.2020)
  • 7. Interview (03.04.2020)

Research Tech Stack

  • Frontend
  • Frontend framework
  • UI component library
  • Version control system
  • Data visualization tool
  • Git repository hosting provider
  • Data sources
  • Optional (database, server, OS, deployment)

Create project idea

  • 1. Supporting research
  • 2. Scientific relevance
  • 3. Project relevance
  • 4. Solution approach
  • 5. Target Group
  • 6. User Needs

Analyse interviews

  • 1. Interview pretest (24.03.2020)
  • 2. Interview (26.03.2020)
  • 3. Interview (27.03.2020)
  • 4. Interview (27.03.2020)
  • 5. Interview (27.03.2020)
  • 6. Interview (01.04.2020)
  • 7. Interview (03.04.2020)
  • 8. Interview (16.04.2020)

Create concept

  • [1. User Journey Mapping]
  • [2. Information Architecture]
  • [3. Style Guide]

Search page for GitHub users

  • function for quick search
  • rework design
  • simplify navigation and made it responsive
  • made content responsive
  • finalize overall tab
  • implement repo tab
  • implement analysis tab

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.