Skip to content

Served as Architecture Owner and Software Developer for the Blue Ocean software engineering workplace simulator. Developed meaningful features (cohort and student's details), improved the functionality and styling of existing ones (calendar tooltips), refactored the database, debugged the API, and as a group exceeded all client's expectations.

Notifications You must be signed in to change notification settings

tech-n-code/hacking-transitions-20

 
 

Repository files navigation

License: MIT

Blue Ocean

The Blue Ocean project is a software engineering workplace simulator. Students utilize the Agile software development process to design, develop, implement and deploy a finished product for a notional client.

The project is broken in two sprints, each followed by a retrospective meeting to review the previous sprint and improve on the upcoming one.

  • Sprint 1: Develop an MVP (Minimal Viable Product) that meets the needs of the end user (User Acceptance Testing).
  • Sprint 2: Extend the functionality on the MVP product by adding features requested by the end user.

By the end of the simulator, students meet all agreed upon client requirements, tackle technical debt, and have a well polished README.md and additional artifacts showing developer's growth.

The final product is demo to the rest of the class and invited guests.

Hacking Transitions

Description

A Full-Stack React application for transition managers to keep track of students, and their appointments. The application stores information in a database for multiple cohorts, who each have multiple students. Information attributed to the students includes Full name, Branch, Duty status, ETS date (with corresponding color indicator depending on the time to ETS), and their phone numbers. The application provides the ability to add/edit/delete appointment notes on the fly for each individual student. The application requires users to register using email credentials, and provide a password for access to sensitive information. The user's password is hashed with additional 10 salt rounds, and is one-way encrypted so it can be stored in the database, and attributed to each individual user.

Table of Contents

Installation & Setup

  1. Make sure Docker Desktop is installed and running on your machine
  2. Click the green "code" button above, then click the 'copy' icon under HTTPS to copy the repo's URL
  3. On your terminal run git clone <repo-URL>
  4. cd into the hacking-transitions-20 directory
  5. In your terminal run cp .env.example .env; cp api/.env.example api/.env This copies required environment variables.
  6. In your terminal run docker compose up -d --build
  7. Go to localhost:3000 on your browser
  8. To power-down the app and delete all containers and associated volumes run docker-compose down -v
  9. (optional) To power-down the app and also delete its images run docker-compose down -v --rmi all
  10. *Note: Since the database for the deployed application is hosted on Heroku, any changes to the data, or structure of the ERD must be pushed to heroku manually by using Heroku's CLI and adding/removing/altering the data from there. Updating the included migration and seed files will not affect the deployed version.

Technologies (Back to Top)

Front-End

JavaScript HTML CSS React

Back-End

Node.js Express.js PostgreSQL Render Docker

Dev Environment

Vite Git Npm VS Code

Key Libraries

Link Description
FullCalendar FullCalendar provides a highly performant React component that accepts JSX for rendering nested content.
ReactTooltip ReactTooltip renders a floating react tooltip element that displays information related to an anchor element when it receives keyboard focus or the mouse hovers over it.
Axios Axios is a simple promise based HTTP client for the browser and node.js.
JSON Web Tokens JSON Web Tokens (JWT) are a compact and self-contained means of securely transmitting information as a digitally signed JSON object, commonly used for authentication and authorization purposes.right baz
Concurrently Concurrently is a JavaScript library that allows running multiple commands concurrently in a single terminal window.
Bcrypt Bcrypt is a JavaScript library used for hashing and comparing passwords securely.
Cypress Cypress is a JavaScript end-to-end testing framework that allows for fast, reliable, and easy-to-write tests for web applications.
Vitest A blazing fast unit test framework powered by Vite.

Collaboration Tools

Slack Discord

Usage

For Staff Members charged with assisting students with their transition from military service.

Improvements (Back to Top)

Improvemnets Slide 1

Improvemnets Slide 1

Screenshots & Video links (click on the images below) (Back to Top)

Before Demo

After Demo

Contributors (Back to Top)

Role Contact Info
Project Manager and Software Engineer GitHub Linkedin
User Interface Owner and Software Engineer GitHub Linkedin
Architecture Owner and Software Engineer GitHub Linkedin
Software Engineer GitHub Linkedin
Software Engineer GitHub Linkedin
Software Engineer GitHub Linkedin

Tests

Full E2E test suite with Cypress, Multiple unit tests written for various components throughout the entire application with Vitest & react-test-library, and development testing with Postman during API development to test routes.

License (Back to Top)

The license used for this project is MIT. For more information visit: https://opensource.org/license/mit/

About

Served as Architecture Owner and Software Developer for the Blue Ocean software engineering workplace simulator. Developed meaningful features (cohort and student's details), improved the functionality and styling of existing ones (calendar tooltips), refactored the database, debugged the API, and as a group exceeded all client's expectations.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 84.3%
  • CSS 14.4%
  • Other 1.3%