Skip to content
This repository has been archived by the owner on Dec 11, 2023. It is now read-only.

gschool-blue-ocean/hacking-transitions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

------------------------------- Galvanize MCSP-16 Team 1 --------------------------------

------------ Hacking Transitions : Blue Ocean -----------

Tech Stack

Next.js React Javascript CSS HTML5 Bootstrap

Firebase Redux

NodeJS Express.js PostgresQL Docker

Git NPM Visual Studio Code Eslint Prettier Jest

Discord Slack Zoom

Deployed Application Access in Production & Login

Project Links

Objective & Requirements

What is the Hacking Transitions Application?

Hacking Transitions is a client commissioned project undertaken by a small team of 6 software developers using the Agile Methodology in three 1-week sprints, with the goal of producing an MVP (minimal-viable-product) for the client.

The client requests an application to be developed to assist the Galvanize: "Operation Level Up" Military Career Skills Program in helping its students and transition-team-staff with facilitating the logistics behind the student's military-to-civilian transition & course-onboarding.

Application is requested to include:

  • login/authentication portal: enables login and authentication for students & admissions staff with a registration feature for new students via registration code; features user password recovery via email
  • student portal: allows the student to view/edit/update their transition information & allows the student to directly message admissions staff; allows the student to update their account password
  • admin portal: allows the admissions staff to access/track/manage student-inputed information from the student portal and assign/re-assign students to specified cohorts; allows admissions staff to directly message students or entire cohorts; allows admissions staff to maintain a database of archived cohorts/students information; allows admins to create new cohorts with a designated unique registration code; allows admissions staff to create/delete admin accounts; allows admins to update their account password

What the app does and why...

The application is designed to assist the transition team at Galvanize in monitoring each student's required tasks, personal goals, and mandatory timelines set forth by their Military Branch of Service regarding their military-to-civilian transition.

  • Galvanize is responsible - per an agreement with the U.S. military - to facilitate and ensure that all students are developing a new technical skill-set full time within their curriculum and completing their military transition obligations.

  • This application is designed to keep track of each student attending the Galvanize Software Engineering Program and their transition obligations.

  • The student is able to login and view and update their information, create/delete personal tasks. Additional helpful resources are avaliable for students at the login page.

  • Galvanize staff transition specialists are able to login as an admin and are able to add/update/delete/archive cohorts, view and manage student data.

Tech Implementation: How the application works...

This application uses Next.js as its dedicated Front-end framework on top of React, while Redux is used for dynamic state management. The app uses the Next.js API that is built into the Front-end framework (see 'pages/api') to query a PostgreSQL Database that stores all relevant application data. Docker is used to containerize the entire application to streamline development and deployment.

Google Firebase is used for login authentication and account creation during registration.

The Bootstrap / React-Bootstrap styling & component library is used for some modals, alerts, etc., and in tandem with traditional CSS styling.

(Note: application directory format is in standard with the Next.js framework convention.)

Installation & Setup

  • Fork / clone down the main branch of this repo
  • open your forked/cloned repo within your IDE and install dependencies:
*** from 'HACKING-TRANSITIONS' directory [root directory] ***

  npm install

NOTE: DOCKER DESKTOP IS REQUIRED TO RUN THIS APPLICATION

  • If you do not have Docker Desktop installed and configured on your PC/Mac, go ahead and install Docker Desktop and configure Docker to be imaged with PostgreSQL.
  • View the following documentation for instruction on install/setup: Docker Documentation
  • Once you have Docker Desktop up and running, execute the following commands from your IDE terminal:
*** from 'HACKING-TRANSITIONS' directory [root directory] ***

  docker compose up --build
  • Allow docker compose to complete initialization

Opening Hacking Transitions from Docker Desktop

  • Once complete, you should have a containerized Docker application visible on Docker Desktop called hacking-transitions. Imgur
  • By clicking the dropdown button on "hacking-transitions", you should be able to see the 3 following containers: hackingTransitions-pgadmin, hackingTransitions-DB, and hackingTransitions-FE. Imgur
  • Click on hackingTransitions-FE's port number (3000:3000) on Docker Desktop to deploy the application to the browser. Imgur
  • You should see the following Log-In screen: Imgur
  • Next, login using the following student or admin demo login email/pass combinations: student@student.com / password Imgur -------------------------------------- OR ------------------------------------
    admin@admin.com / password Imgur
  • You may also register for your own student account using the demo Registration Code: batMan <--- code is case sensitive Imgur

Testing (Jest)

"Build.test.js" is a Jest.js test that will test if the Hacking Transitions Application will build correctly using the Next Build command ("npm run build")

  • 1.) Run an "npm install" from root project directory
  npm install
  • 2.) Run "docker-compose up --build"
  docker compose up --build
  • 3.) CD into the "tests" directory
  cd tests/
  • 4.) Run "npm test" to test if the app will execute a Next Build without failing
  npm test

Contributors