├── .gitignore ├── README.md ├── build ├── bundle.js ├── bundle.js.LICENSE.txt └── index.html ├── function.js ├── package-lock.json └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | client 4 | server 5 | .npmignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 🔮 Tetrachrome 2 | 3 | Tetrachrome is an open source developer tool for developers to visualize and analyze the fullstack of their applications using React and Node.js / Express. 4 | 5 | ## 🔑 Features: 6 | * Parses through React Fiber Tree and generates the visualization of the tree using D3.js 7 | * Parses through Express object and creates a table of all the routes and the associated methods 8 | * Captures HTTP request activity and creates a table of associated methods, endpoints, statuses, content lengths, response times, and timestamps 9 | 10 | ## 🧰 Built with: 11 | * Javascript 12 | * Node.js / Express 13 | * React 14 | * D3.js 15 | * Webpack 16 | * Socket-io 17 | * Morgan 18 | 19 | ## 🛠 Installation 20 | 1. Assuming you've already installed Node.js and npm, install the Tetrachrome package by running the following command: 21 | ``` 22 | npm i tetrachrome 23 | ``` 24 | 2. The application exports a router object named tetrachrome and a function named routeStack. The tetrachrome router object contains an isolated instance of customized Morgan (GitHub, NPM) middleware and creates a route (`/tetrachrome`) where the application is served. The routeStack function contains logic that parses through Express to determine which endpoints are available in the user's application. Add Tetrachrome into the backend (often your server.js file) of your application: 25 | ``` 26 | const { tetrachrome, routeStack } = require('tetrachrome'); 27 | app.use(tetrachrome); 28 | routeStack(app); 29 | ``` 30 | 3. Since the commands above serves the Tetrachrome application, if you are using webpack or any other module bundler, you will need to add this server side route (`/tetrachrome`) to your proxy configuration (typically, your webpack.js file) in order to access the Tetrachrome application on the client side as shown below: 31 | ``` 32 | "proxy": { 33 | "/tetrachrome": { 34 | "target": "http://localhost:3000/", 35 | "secure": false 36 | }, 37 | } 38 | ``` 39 | 4. Run your application and navigate to the route `/tetrachrome` in your browser. You will see the Tetrachrome navigation bar at the top of the page and your application running below. 40 | * Frontend - display of your application components using our algorithm parsing through your React Fiber Tree 41 | * Backend - display of available paths and their methods 42 | * Logs - tabular display of all HTTP requests that are hitting your server 43 | 44 | Be sure to interact with your application on the left side of the page in order to see all your HTTP requests in real time! 45 | 46 | ## 🫰🏼 Team 47 | | Name | Social | 48 | | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | 49 | | Judy Wu | [![LinkedIn]](https://www.linkedin.com/in/judywuxingyi/) [![GitHub]](https://github.com/judywuxingyi) | 50 | | Marco Xu | [![LinkedIn]](https://www.linkedin.com/in/marco-xu-lin/) [![GitHub]](https://github.com/marcoxulin) | 51 | | Risa Ochiai | [![LinkedIn]](https://www.linkedin.com/in/risaochiai/) [![GitHub]](https://github.com/risa-10) | 52 | | Terry Park | [![LinkedIn]](https://www.linkedin.com/in/terryparkjh/) [![GitHub]](https://github.com/tjpark95) | 53 | 54 | ## 📬 Contact 55 | [![LinkedIn]](https://www.linkedin.com/company/tetrachrome-open-source/) 56 | 57 | [LinkedIn]: https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white 58 | [GitHub]: https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white 59 | 60 | -------------------------------------------------------------------------------- /build/bundle.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /** 2 | * @license React 3 | * react-dom.production.min.js 4 | * 5 | * Copyright (c) Facebook, Inc. and its affiliates. 6 | * 7 | * This source code is licensed under the MIT license found in the 8 | * LICENSE file in the root directory of this source tree. 9 | */ 10 | 11 | /** 12 | * @license React 13 | * react-is.production.min.js 14 | * 15 | * Copyright (c) Facebook, Inc. and its affiliates. 16 | * 17 | * This source code is licensed under the MIT license found in the 18 | * LICENSE file in the root directory of this source tree. 19 | */ 20 | 21 | /** 22 | * @license React 23 | * react-jsx-runtime.production.min.js 24 | * 25 | * Copyright (c) Facebook, Inc. and its affiliates. 26 | * 27 | * This source code is licensed under the MIT license found in the 28 | * LICENSE file in the root directory of this source tree. 29 | */ 30 | 31 | /** 32 | * @license React 33 | * react.production.min.js 34 | * 35 | * Copyright (c) Facebook, Inc. and its affiliates. 36 | * 37 | * This source code is licensed under the MIT license found in the 38 | * LICENSE file in the root directory of this source tree. 39 | */ 40 | 41 | /** 42 | * @license React 43 | * scheduler.production.min.js 44 | * 45 | * Copyright (c) Facebook, Inc. and its affiliates. 46 | * 47 | * This source code is licensed under the MIT license found in the 48 | * LICENSE file in the root directory of this source tree. 49 | */ 50 | 51 | /** 52 | * @remix-run/router v1.0.3 53 | * 54 | * Copyright (c) Remix Software Inc. 55 | * 56 | * This source code is licensed under the MIT license found in the 57 | * LICENSE.md file in the root directory of this source tree. 58 | * 59 | * @license MIT 60 | */ 61 | 62 | /** 63 | * React Router DOM v6.4.3 64 | * 65 | * Copyright (c) Remix Software Inc. 66 | * 67 | * This source code is licensed under the MIT license found in the 68 | * LICENSE.md file in the root directory of this source tree. 69 | * 70 | * @license MIT 71 | */ 72 | 73 | /** 74 | * React Router v6.4.3 75 | * 76 | * Copyright (c) Remix Software Inc. 77 | * 78 | * This source code is licensed under the MIT license found in the 79 | * LICENSE.md file in the root directory of this source tree. 80 | * 81 | * @license MIT 82 | */ 83 | 84 | /** @license MUI v5.11.0 85 | * 86 | * This source code is licensed under the MIT license found in the 87 | * LICENSE file in the root directory of this source tree. 88 | */ 89 | 90 | /** @license React v16.13.1 91 | * react-is.production.min.js 92 | * 93 | * Copyright (c) Facebook, Inc. and its affiliates. 94 | * 95 | * This source code is licensed under the MIT license found in the 96 | * LICENSE file in the root directory of this source tree. 97 | */ 98 | -------------------------------------------------------------------------------- /build/index.html: -------------------------------------------------------------------------------- 1 |