Skip to content

Ground Resources Management (GRM) Dashboard built with React as a frontend and Ruby On Rails as a backend.

Notifications You must be signed in to change notification settings

mhern1415/Astro-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

To run application:

cd to frontend folder and run "npm install" and then "npm start"

In a separate terminal, cd to challenge-api and run "bundle"

run "rails db:migrate", "rails db:seed", and "rails s"

The challenge-api is configured to run out of http://localhost:3001 while the frontend will run out of http://localhost:3000

This challenge utilizes the following Astro UXDS components:

  • Astro RUX Progress
  • Astro UXDS Input Fields
  • Astro UXDS HTML Table
  • Astro UXDS Status Symbols
  • Astro UXDS Button
  • Astro UXDS Global Status Bar
  • Astro UXDS Clock
  • Astro UXDS CSS Library

test

Full-Stack-Developer-Coding-Challenge

As the next step in the interview process, we’d like you to complete a coding challenge.

The Project

You will be building a basic version of a Ground Resources Management (GRM) Dashboard. There are two JSON files in this repository, contacts.json and alerts.json. Contacts (satellites) is a list of satellites in orbit and includes pertinent information about each device. Alerts is a list of unrelated status alerts with varying levels of severity. You will need to take this JSON data and persist it in a backend database. You will then develop a backend API, to be called upon by your frontend, which will display the data. This dashboard should allow registration and login of a user, requiring a password, and the user's credentials should also be persisted in your database.

The result should be a dashboard with two pages (the application can be single-page (SPA), or multiple pages):

  • A registration/login page
  • A main page that displays contact and alert information in a clean, user-friendly format

Because this position requires familiarity with web components, we would like you to refer to our Astro UX Design site (https://astrouxds.com/) for this project. You may work with the web components directly, or build your own. We also encourage you to utilize our CSS-only library to better match Astro styling.

Refer to the section Astro Storybook and Sample Apps at this link to get more details about Astro components, and to see several sample apps that may provide you with inspiration (https://astrouxds.com/getting-started/developers/).

Requirements

Backend

  • The backend of this project can be done in Ruby or Python. You are permitted to use generators such as Ruby on Rails, Flask, etc.
  • contacts.json, alerts.json, and user credentials data is persisted in a database.
    • Each data point should have a corresponding column in the database.
    • You may use any databse tool of your choice, such as PostgresQL, MongoDB, SQLite, etc.
  • API provides frontend with contacts.json, alerts.json, and verified user credentials.

Frontend

  • The frontend of this project can be done in React, Vue, or Angular. You are permitted to use any of these frameworks CLI generators to quickly start a project (npx create-react-app, ng new my-app, etc.)
  • The application utilizes either Astro UXDS components, or Astro UXDS styling
  • Login Page Reuirements
    • Authentication is required to access the application
    • User must register for a new account, or login with an existing account, to proceed to the dashboard
  • Main Page/Dashboard Requirements
    • The dashboard page cleanly displays the data from contacts.json, alerts.json in two separate tables
    • The following should be displayed in the Contacts pane:
      • Display the total number of Contacts.
      • Display the total different Contact states (contactState).
      • For each Contact, display Name (contactName), Status (contactStatus), and Begin/End timestamp (contactBeginTimestamp/contactEndTimestamp).
      • Allow sorting on the name.
    • The following should be displayed in the Alerts pane:
      • Display each Alert message (errorMessage).
      • Display each Alert category (errorCategory).
      • Display each Alert time (errorTime).
      • Allow sorting on the category.

Additional Information

  • You are free to use any third-party libraries.
  • Have fun and be as creative as you like!
  • Please feel free to reach out to ask any questions (chris.kerbo@rocketcom.com).

How to submit this challenge:

  1. Fork this repository
  2. Work on your solution
  3. Create a pull request with @github/cskerbo as the reviewer.

Timeframe

We would like the take home challenge to be completed within two weeks. If you need more time, please reach out to us. You will not be judged on how quickly you complete the challenge.

About

Ground Resources Management (GRM) Dashboard built with React as a frontend and Ruby On Rails as a backend.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published