├── .babelrc ├── .eslintrc.yml ├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── README.md ├── babelconfigtest ├── coverage ├── clover.xml ├── coverage-final.json ├── lcov-report │ ├── base.css │ ├── block-navigation.js │ ├── favicon.png │ ├── hyperion │ │ ├── firebase.js.html │ │ ├── index.html │ │ └── src │ │ │ ├── AuthContext.js.html │ │ │ ├── Login.js.html │ │ │ └── index.html │ ├── index.html │ ├── prettify.css │ ├── prettify.js │ ├── sort-arrow-sprite.png │ └── sorter.js └── lcov.info ├── dist ├── bundle.js ├── bundle.js.LICENSE.txt ├── index.html └── src │ └── assets │ └── Hyperion.png ├── firebase.js ├── package-lock.json ├── package.json ├── server ├── Controllers │ ├── metricController.js │ └── userController.js ├── models │ ├── errorLog.js │ └── users.js ├── routers │ └── Router.js └── server.js ├── src ├── App.tsx ├── Components │ ├── ActiveControllers.jsx │ ├── AvgRequestLatency.jsx │ ├── BytesConsumedRate.jsx │ ├── DataContainer.jsx │ ├── ErrorLogContainer.jsx │ ├── NavBar.tsx │ ├── OfflinePartitions.jsx │ ├── OutgoingByteRate.jsx │ ├── RequestRate.jsx │ ├── ResponseRate.jsx │ ├── SideNav.tsx │ ├── SimpleKeyMetrics.jsx │ └── UnderReplicated.jsx ├── Pages │ ├── AuthContext.jsx │ ├── ErrorLogDisplay.jsx │ ├── ForgotPassword.jsx │ ├── Login.jsx │ ├── MainDisplay.jsx │ ├── PrivateRoute.jsx │ └── Signup.jsx ├── app.scss ├── assets │ ├── Hyperion.png │ ├── LoginLogo.png │ ├── SpaceLogo.png │ ├── connect.png │ ├── errorlog.png │ ├── login.png │ ├── moredash.png │ └── whitelogo.png ├── index.html ├── index.tsx ├── setuptTest.js └── test │ ├── AvgRequestLatency.test.jsx │ ├── Login.test.jsx │ ├── OfflinePartitions.test.jsx │ └── SignUp.test.jsx ├── tsconfig.json ├── vite.config.ts └── webpack.config.js /.babelrc: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "presets": [ "@babel/preset-env", "@babel/preset-react", "@babel/preset-typescript"], 4 | "plugins": [] 5 | } 6 | -------------------------------------------------------------------------------- /.eslintrc.yml: -------------------------------------------------------------------------------- 1 | env: 2 | browser: true 3 | es2021: true 4 | extends: 5 | - eslint:recommended 6 | - plugin:react/recommended 7 | - plugin:@typescript-eslint/recommended 8 | overrides: [] 9 | parser: '@typescript-eslint/parser' 10 | parserOptions: 11 | ecmaVersion: latest 12 | sourceType: module 13 | plugins: 14 | - react 15 | - '@typescript-eslint' 16 | rules: {} -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | ./dist/bundle.js -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GitHub Tutorial 2 |
An open-source Kafka monitoring tool built for developers
8 |
9 |
10 |
11 |
12 |
13 | hyperionapp.dev
14 |
55 | Press n or j to go to the next uncovered block, b, p or k for the previous block. 56 |
57 | 58 |1 67 | 2 68 | 3 69 | 4 70 | 5 71 | 6 72 | 7 73 | 8 74 | 9 75 | 10 76 | 11 77 | 12 78 | 13 79 | 14 80 | 15 81 | 16 82 | 17 83 | 18 84 | 19 85 | 20 86 | 21 87 | 22 88 | 23 89 | 24 90 | 25 91 | 26 92 | 27 93 | 28 94 | 29 95 | 30 96 | 31 97 | 32 98 | 33 99 | 34 100 | 35 101 | 36 102 | 37 103 | 38 104 | 39 105 | 40 106 | 41 107 | 42 108 | 43 109 | 44 110 | 45 111 | 46 112 | 47 113 | 48 114 | 49 115 | 50 116 | 51 117 | 52 118 | 53 119 | 54 120 | 55 121 | 56 122 | 57 123 | 58 124 | 59 125 | 60 126 | 61 127 | 62 128 | 63 129 | 64 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 1x 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 1x 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 1x 189 | 190 | 1x 191 | 192 | | // Import the functions you need from the SDKs you need 193 | 194 | import { initializeApp } from "firebase/app"; 195 | // import { getAnalytics } from "firebase/analytics"; 196 | //import firebase from 'firebase/compat/app' 197 | 198 | //import "firebase/auth"; 199 | //{ getAuth, onAuthStateChanged } 200 | //import firebase from "./firebase"; 201 | // import firebase from 'firebase/compat/app'; 202 | // import { getAuth, signInWithPopup, GoogleAuthProvider } from 'firebase/compat/auth'; 203 | // import 'firebase/compat/firestore'; 204 | // import firebase from 'firebase/compat/app'; 205 | 206 | // import 'firebase/compat/auth'; 207 | // import 'firebase/compat/database'; 208 | 209 | // import "firebase/compat/app"; 210 | // import "firebase/compat/analytics"; 211 | 212 | // import {getAuth, 213 | // signOut, 214 | // sendPasswordResetEmail, 215 | // createUserWithEmailAndPassword, 216 | // signInWithEmailAndPassword, 217 | // signOut, 218 | // se 219 | // } from "firebase/auth"; 220 | 221 | "" 222 | import * as firebase from 'firebase/auth'; 223 | 224 | // firebase.initializeApp(firebaseConfig); 225 | 226 | // // Namespaced syntax requires compat version 227 | // //export const auth = firebase.auth(); 228 | // export const database = firebase.database(); 229 | // // Add the Firebase products that you want to use 230 | // //import "firebase/auth"; 231 | // console.log('Firebase.auth: ', firebase.auth); 232 | // //import 'firebase/compat/auth'; 233 | 234 | 235 | // TODO: Add SDKs for Firebase products that you want to use 236 | // https://firebase.google.com/docs/web/setup#available-libraries 237 | 238 | // Your web app's Firebase configuration 239 | // For Firebase JS SDK v7.20.0 and later, measurementId is optional 240 | const firebaseConfig = { 241 | apiKey: "AIzaSyBp29QyjHWW6Jojs2Hufn7z8zmNMVw5290", 242 | authDomain: "hyperion-272ea.firebaseapp.com", 243 | projectId: "hyperion-272ea", 244 | storageBucket: "hyperion-272ea.appspot.com", 245 | messagingSenderId: "90144758527", 246 | appId: "1:90144758527:web:462b4eb5b5408c5e63caca", 247 | measurementId: "G-3KM8KR7HS2" 248 | }; 249 | 250 | // Initialize Firebase 251 | const app = initializeApp(firebaseConfig); 252 | // console.log('app', app) 253 | export const auth = firebase.getAuth(app); 254 | // export default ; 255 | export default app; |
55 | Press n or j to go to the next uncovered block, b, p or k for the previous block. 56 |
57 | 58 |File | 70 |71 | | Statements | 72 |73 | | Branches | 74 |75 | | Functions | 76 |77 | | Lines | 78 |79 | |
---|---|---|---|---|---|---|---|---|---|
firebase.js | 83 |
84 |
85 | |
86 | 100% | 87 |4/4 | 88 |100% | 89 |0/0 | 90 |100% | 91 |0/0 | 92 |100% | 93 |4/4 | 94 |
55 | Press n or j to go to the next uncovered block, b, p or k for the previous block. 56 |
57 | 58 |1 67 | 2 68 | 3 69 | 4 70 | 5 71 | 6 72 | 7 73 | 8 74 | 9 75 | 10 76 | 11 77 | 12 78 | 13 79 | 14 80 | 15 81 | 16 82 | 17 83 | 18 84 | 19 85 | 20 86 | 21 87 | 22 88 | 23 89 | 24 90 | 25 91 | 26 92 | 27 93 | 28 94 | 29 95 | 30 96 | 31 97 | 32 98 | 33 99 | 34 100 | 35 101 | 36 102 | 37 103 | 38 104 | 39 105 | 40 106 | 41 107 | 42 108 | 43 109 | 44 110 | 45 111 | 46 112 | 47 113 | 48 114 | 49 115 | 50 116 | 51 117 | 52 118 | 53 119 | 54 120 | 55 121 | 56 122 | 57 123 | 58 124 | 59 125 | 60 126 | 61 127 | 62 128 | 63 129 | 64 130 | 65 131 | 66 132 | 67 133 | 68 134 | 69 135 | 70 136 | 71 137 | 72 138 | 73 139 | 74 140 | 75 141 | 76 142 | 77 143 | 78 144 | 79 145 | 80 146 | 81 147 | 82 148 | 83 149 | 84 150 | 85 151 | 86 152 | 87 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 1x 169 | 1x 170 | 1x 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | | import React, { useContext, useState, useEffect, createContext } from "react" 239 | import { auth } from "../firebase.js" 240 | import app from '../firebase.js'; 241 | import { ConstructionOutlined, Google } from "@mui/icons-material"; 242 | import { getAuth, 243 | createUserWithEmailAndPassword, 244 | signInWithEmailAndPassword, 245 | signOut, 246 | sendPasswordResetEmail, 247 | updateEmail, 248 | updatePassword, 249 | onAuthStateChanged, 250 | GoogleAuthProvider, 251 | signInWithPopup, 252 | GithubAuthProvider 253 | } from "firebase/auth" 254 | const goog = new GoogleAuthProvider() 255 | const github = new GithubAuthProvider(); 256 | const AuthContext = React.createContext() 257 | //const auth = getAuth() 258 | export function useAuth() { 259 | return useContext(AuthContext) 260 | } 261 | 262 | export function AuthProvider({ children }) { 263 | const [currentUser, setCurrentUser] = useState() 264 | const [loading, setLoading] = useState(true) 265 | 266 | function signup(email, password) { 267 | return createUserWithEmailAndPassword(auth, email, password) 268 | } 269 | function loginWithGoogle(){ 270 | const result = signInWithPopup(auth, goog) 271 | return result; 272 | } 273 | 274 | async function loginWithGithub(){ 275 | const result = await signInWithPopup(auth, github) 276 | return result; 277 | } 278 | function login(email, password) { 279 | return signInWithEmailAndPassword(auth, email, password) 280 | } 281 | 282 | function logout() { 283 | return signOut(auth) 284 | } 285 | 286 | function resetPassword(email) { 287 | return sendPasswordResetEmail(auth, email) 288 | } 289 | 290 | function updateEmail(email) { 291 | return currentUser.updateEmail(email) 292 | } 293 | 294 | function updatePassword(password) { 295 | return currentUser.updatePassword(password) 296 | } 297 | 298 | useEffect(() => { 299 | const unsubscribe = auth.onAuthStateChanged(user => { 300 | setCurrentUser(user) 301 | setLoading(false) 302 | }) 303 | 304 | return unsubscribe 305 | }, []) 306 | 307 | const value = { 308 | currentUser, 309 | loginWithGoogle, 310 | loginWithGithub, 311 | login, 312 | signup, 313 | logout, 314 | resetPassword, 315 | updateEmail, 316 | updatePassword 317 | } 318 | 319 | return ( 320 | <AuthContext.Provider value={value}> 321 | {!loading && children} 322 | </AuthContext.Provider> 323 | ) 324 | } |
55 | Press n or j to go to the next uncovered block, b, p or k for the previous block. 56 |
57 | 58 |File | 70 |71 | | Statements | 72 |73 | | Branches | 74 |75 | | Functions | 76 |77 | | Lines | 78 |79 | |
---|---|---|---|---|---|---|---|---|---|
AuthContext.js | 83 |
84 |
85 | |
86 | 13.04% | 87 |3/23 | 88 |0% | 89 |0/2 | 90 |0% | 91 |0/12 | 92 |13.04% | 93 |3/23 | 94 |
Login.js | 98 |
99 |
100 | |
101 | 0% | 102 |0/32 | 103 |0% | 104 |0/2 | 105 |0% | 106 |0/4 | 107 |0% | 108 |0/32 | 109 |
55 | Press n or j to go to the next uncovered block, b, p or k for the previous block. 56 |
57 | 58 |File | 70 |71 | | Statements | 72 |73 | | Branches | 74 |75 | | Functions | 76 |77 | | Lines | 78 |79 | |
---|