├── frontend ├── src │ ├── index.css │ ├── Body.jsx │ ├── Contact.css │ ├── About.css │ ├── Contact.jsx │ ├── main.jsx │ ├── UserContext.jsx │ ├── index.jsx │ ├── Footer.jsx │ ├── Home.jsx │ ├── Dashboard │ │ ├── Card.css │ │ ├── Card.jsx │ │ ├── Learn.css │ │ ├── Learn.jsx │ │ ├── Stock.css │ │ ├── Dash.css │ │ ├── Dashboard.jsx │ │ ├── Stock.jsx │ │ ├── Portfolio.css │ │ └── Portfolio.jsx │ ├── About.jsx │ ├── App.css │ ├── Header.css │ ├── Header.jsx │ ├── App.jsx │ ├── Home.css │ ├── Login.css │ ├── Register.jsx │ ├── Login.jsx │ └── assets │ │ └── react.svg ├── vite.config.js ├── index.html ├── README.md ├── package.json ├── eslint.config.js └── public │ └── vite.svg ├── sample.pptx ├── screenshots ├── Picture1.png ├── Picture2.png ├── Picture3.png ├── Picture4.png ├── Picture5.png └── Picture6.png ├── backend └── 1-StockMarketInvestment │ ├── target │ ├── classes │ │ ├── com │ │ │ └── infosys │ │ │ │ ├── Application.class │ │ │ │ ├── entity │ │ │ │ └── Register.class │ │ │ │ ├── repo │ │ │ │ └── RegisterRepo.class │ │ │ │ ├── service │ │ │ │ ├── RegisterService.class │ │ │ │ └── RegisterServiceImp.class │ │ │ │ └── controller │ │ │ │ └── RegisterController.class │ │ ├── META-INF │ │ │ ├── MANIFEST.MF │ │ │ └── maven │ │ │ │ └── com.infosys │ │ │ │ └── 1-StockMarketInvestment │ │ │ │ ├── pom.properties │ │ │ │ └── pom.xml │ │ └── application.properties │ └── test-classes │ │ └── com │ │ └── infosys │ │ └── ApplicationTests.class │ ├── src │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── infosys │ │ │ └── ApplicationTests.java │ └── main │ │ ├── java │ │ └── com │ │ │ └── infosys │ │ │ ├── service │ │ │ ├── RegisterService.java │ │ │ └── RegisterServiceImp.java │ │ │ ├── Application.java │ │ │ ├── repo │ │ │ └── RegisterRepo.java │ │ │ ├── controller │ │ │ └── RegisterController.java │ │ │ └── entity │ │ │ └── Register.java │ │ └── resources │ │ └── application.properties │ ├── HELP.md │ ├── pom.xml │ ├── mvnw.cmd │ └── mvnw └── README.md /frontend/src/index.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /frontend/src/Body.jsx: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /frontend/src/Contact.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /frontend/src/About.css: -------------------------------------------------------------------------------- 1 | #p 2 | { 3 | font-size: 100px; 4 | } -------------------------------------------------------------------------------- /sample.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuvarajan-s-16/Stock-Market/HEAD/sample.pptx -------------------------------------------------------------------------------- /screenshots/Picture1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuvarajan-s-16/Stock-Market/HEAD/screenshots/Picture1.png -------------------------------------------------------------------------------- /screenshots/Picture2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuvarajan-s-16/Stock-Market/HEAD/screenshots/Picture2.png -------------------------------------------------------------------------------- /screenshots/Picture3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuvarajan-s-16/Stock-Market/HEAD/screenshots/Picture3.png -------------------------------------------------------------------------------- /screenshots/Picture4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuvarajan-s-16/Stock-Market/HEAD/screenshots/Picture4.png -------------------------------------------------------------------------------- /screenshots/Picture5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuvarajan-s-16/Stock-Market/HEAD/screenshots/Picture5.png -------------------------------------------------------------------------------- /screenshots/Picture6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuvarajan-s-16/Stock-Market/HEAD/screenshots/Picture6.png -------------------------------------------------------------------------------- /frontend/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vite.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | }) 8 | -------------------------------------------------------------------------------- /backend/1-StockMarketInvestment/target/classes/com/infosys/Application.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuvarajan-s-16/Stock-Market/HEAD/backend/1-StockMarketInvestment/target/classes/com/infosys/Application.class -------------------------------------------------------------------------------- /backend/1-StockMarketInvestment/target/classes/com/infosys/entity/Register.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuvarajan-s-16/Stock-Market/HEAD/backend/1-StockMarketInvestment/target/classes/com/infosys/entity/Register.class -------------------------------------------------------------------------------- /backend/1-StockMarketInvestment/target/classes/com/infosys/repo/RegisterRepo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuvarajan-s-16/Stock-Market/HEAD/backend/1-StockMarketInvestment/target/classes/com/infosys/repo/RegisterRepo.class -------------------------------------------------------------------------------- /backend/1-StockMarketInvestment/target/test-classes/com/infosys/ApplicationTests.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuvarajan-s-16/Stock-Market/HEAD/backend/1-StockMarketInvestment/target/test-classes/com/infosys/ApplicationTests.class -------------------------------------------------------------------------------- /backend/1-StockMarketInvestment/target/classes/com/infosys/service/RegisterService.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuvarajan-s-16/Stock-Market/HEAD/backend/1-StockMarketInvestment/target/classes/com/infosys/service/RegisterService.class -------------------------------------------------------------------------------- /backend/1-StockMarketInvestment/target/classes/com/infosys/service/RegisterServiceImp.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuvarajan-s-16/Stock-Market/HEAD/backend/1-StockMarketInvestment/target/classes/com/infosys/service/RegisterServiceImp.class -------------------------------------------------------------------------------- /backend/1-StockMarketInvestment/target/classes/com/infosys/controller/RegisterController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuvarajan-s-16/Stock-Market/HEAD/backend/1-StockMarketInvestment/target/classes/com/infosys/controller/RegisterController.class -------------------------------------------------------------------------------- /frontend/src/Contact.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | const Contact=()=> { 3 | return ( 4 | <> 5 |

welcome to Contact

6 | 7 | 8 | ); 9 | } 10 | 11 | export default Contact; 12 | -------------------------------------------------------------------------------- /backend/1-StockMarketInvestment/target/classes/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Build-Jdk-Spec: 21 3 | Implementation-Title: 1-StockMarketInvestment 4 | Implementation-Version: 0.0.1-SNAPSHOT 5 | Created-By: Maven Integration for Eclipse 6 | 7 | -------------------------------------------------------------------------------- /frontend/src/main.jsx: -------------------------------------------------------------------------------- 1 | import { StrictMode } from 'react' 2 | import { createRoot } from 'react-dom/client' 3 | import './index.css' 4 | import App from './App.jsx' 5 | 6 | createRoot(document.getElementById('root')).render( 7 | 8 | 9 | , 10 | ) 11 | -------------------------------------------------------------------------------- /backend/1-StockMarketInvestment/src/test/java/com/infosys/ApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.infosys; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class ApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /backend/1-StockMarketInvestment/src/main/java/com/infosys/service/RegisterService.java: -------------------------------------------------------------------------------- 1 | package com.infosys.service; 2 | 3 | import com.infosys.entity.Register; 4 | 5 | public interface RegisterService { 6 | 7 | Register saveNewUser(Register register); 8 | 9 | Register login(String email, String password); 10 | 11 | 12 | } -------------------------------------------------------------------------------- /frontend/src/UserContext.jsx: -------------------------------------------------------------------------------- 1 | import { createContext, useState } from "react"; 2 | 3 | export const UserContext = createContext(); 4 | 5 | export const UserProvider = ({ children }) => { 6 | const [user, setUser] = useState(null); 7 | 8 | return ( 9 | 10 | {children} 11 | 12 | ); 13 | }; 14 | -------------------------------------------------------------------------------- /backend/1-StockMarketInvestment/src/main/java/com/infosys/Application.java: -------------------------------------------------------------------------------- 1 | package com.infosys; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class Application { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(Application.class, args); 11 | } 12 | } -------------------------------------------------------------------------------- /frontend/src/index.jsx: -------------------------------------------------------------------------------- 1 | import {StrictMode} from 'react'; 2 | import ReactDOM from 'react-dom/client'; 3 | import App from './App.jsx'; 4 | import './index.css'; 5 | import { BrowserRouter } from 'react-router-dom'; 6 | import Register from './Register.jsx'; 7 | 8 | const root = ReactDOM.createRoot(document.getElementById('root')); 9 | root.render( 10 | 11 | 12 | 13 | 14 | ); -------------------------------------------------------------------------------- /backend/1-StockMarketInvestment/src/main/java/com/infosys/repo/RegisterRepo.java: -------------------------------------------------------------------------------- 1 | package com.infosys.repo; 2 | 3 | import org.springframework.data.jpa.repository.JpaRepository; 4 | import org.springframework.stereotype.Repository; 5 | 6 | import com.infosys.entity.Register; 7 | @Repository 8 | public interface RegisterRepo extends JpaRepository { 9 | 10 | Register findByEmail(String email); 11 | } -------------------------------------------------------------------------------- /frontend/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + React 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /backend/1-StockMarketInvestment/target/classes/META-INF/maven/com.infosys/1-StockMarketInvestment/pom.properties: -------------------------------------------------------------------------------- 1 | #Generated by Maven Integration for Eclipse 2 | #Tue Nov 26 20:43:41 IST 2024 3 | artifactId=1-StockMarketInvestment 4 | groupId=com.infosys 5 | m2e.projectLocation=C\:\\Users\\yuvar\\Documents\\workspace-spring-tool-suite-4-4.26.0.RELEASE\\1-StockMarketInvestment 6 | m2e.projectName=1-StockMarketInvestment 7 | version=0.0.1-SNAPSHOT 8 | -------------------------------------------------------------------------------- /frontend/README.md: -------------------------------------------------------------------------------- 1 | # React + Vite 2 | 3 | This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. 4 | 5 | Currently, two official plugins are available: 6 | 7 | - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh 8 | - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh 9 | -------------------------------------------------------------------------------- /frontend/src/Footer.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import './App.css' 3 | const Footer=()=>{ 4 | return( 5 | <> 6 |
7 |
8 |

9 |

© 2024 Infosys Springboard. All rights reserved.

10 |

11 |
12 |
13 | 14 | ) 15 | } 16 | export default Footer; -------------------------------------------------------------------------------- /backend/1-StockMarketInvestment/target/classes/application.properties: -------------------------------------------------------------------------------- 1 | server.port:7000 2 | # Database related properties 3 | spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver 4 | spring.datasource.url=jdbc:mysql://localhost:3306/stockdb?allowPublicKeyRetrieval=true&useSSL=false 5 | spring.datasource.username=root 6 | spring.datasource.password=root 7 | 8 | # Jpa properties/ HB related properties 9 | spring.jpa.show-sql=true 10 | spring.jpa.properties.hibernate.format_sql=true 11 | spring.jpa.hibernate.ddl-auto=update -------------------------------------------------------------------------------- /backend/1-StockMarketInvestment/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port:7000 2 | # Database related properties 3 | spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver 4 | spring.datasource.url=jdbc:mysql://localhost:3306/stockdb?allowPublicKeyRetrieval=true&useSSL=false 5 | spring.datasource.username=root 6 | spring.datasource.password=root 7 | 8 | # Jpa properties/ HB related properties 9 | spring.jpa.show-sql=true 10 | spring.jpa.properties.hibernate.format_sql=true 11 | spring.jpa.hibernate.ddl-auto=update -------------------------------------------------------------------------------- /frontend/src/Home.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import './Home.css' 3 | const Home=()=> { 4 | return ( 5 | <> 6 |
7 |
8 |

Welcome to Springboard

9 |

Launch your ideas into the world with our platform.

10 | 11 |
12 |
13 |

Features

14 |
    15 |
  • Collaborate with your team
  • 16 |
  • Track your progress
  • 17 |
  • Achieve your goals
  • 18 |
19 |
20 |
21 | 22 | 23 | 24 | ); 25 | } 26 | 27 | export default Home; 28 | -------------------------------------------------------------------------------- /frontend/src/Dashboard/Card.css: -------------------------------------------------------------------------------- 1 | .card { 2 | background-color: #1e1e1e; 3 | color: white; 4 | border: 1px solid #444; 5 | border-radius: 5px; 6 | padding: 10px; 7 | margin: 10px 0; 8 | box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5); 9 | transition: all 0.3s ease; 10 | width: 100%; 11 | display: flex; 12 | 13 | } 14 | 15 | .card:hover { 16 | background-color: #2e2e2e; 17 | border-color: #666; 18 | box-shadow: 0 4px 10px rgba(0, 0, 0, 0.7); 19 | transform: scale(1.02); 20 | } 21 | 22 | .cardimg { 23 | width: 100%; 24 | height: 120px; 25 | overflow: hidden; 26 | display: flex; 27 | justify-content: left; 28 | } 29 | 30 | .card-image { 31 | max-width: 100%; 32 | max-height: 100%; 33 | object-fit: cover; 34 | } 35 | 36 | .card-title { 37 | font-size: 1em; 38 | font-weight: bold; 39 | margin-top: 10px; 40 | display: flex; 41 | justify-content: right; 42 | } -------------------------------------------------------------------------------- /backend/1-StockMarketInvestment/src/main/java/com/infosys/service/RegisterServiceImp.java: -------------------------------------------------------------------------------- 1 | package com.infosys.service; 2 | 3 | import org.springframework.beans.factory.annotation.Autowired; 4 | 5 | import org.springframework.stereotype.Service; 6 | 7 | import com.infosys.entity.Register; 8 | 9 | import com.infosys.repo.RegisterRepo; 10 | 11 | @Service 12 | 13 | public class RegisterServiceImp implements RegisterService { 14 | 15 | @Autowired private RegisterRepo repo; 16 | 17 | @Override 18 | 19 | public Register saveNewUser(Register register) { 20 | 21 | return repo.save(register); 22 | 23 | } 24 | 25 | @Override 26 | public Register login(String email,String password) { 27 | 28 | Register register = repo.findByEmail(email); 29 | 30 | if (register != null && register.getPassword().equals(password)) { 31 | return register; 32 | } else { 33 | return null; 34 | } 35 | } 36 | 37 | } -------------------------------------------------------------------------------- /frontend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "stockmarket", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vite build", 9 | "lint": "eslint .", 10 | "preview": "vite preview" 11 | }, 12 | "dependencies": { 13 | "axios": "^1.7.7", 14 | "chart.js": "^4.4.6", 15 | "plotly.js": "^2.35.2", 16 | "react": "^18.3.1", 17 | "react-chartjs-2": "^5.2.0", 18 | "react-dom": "^18.3.1", 19 | "react-icons": "^5.3.0", 20 | "react-plotly.js": "^2.6.0", 21 | "react-router-dom": "^6.28.0" 22 | }, 23 | "devDependencies": { 24 | "@eslint/js": "^9.13.0", 25 | "@types/react": "^18.3.12", 26 | "@types/react-dom": "^18.3.1", 27 | "@vitejs/plugin-react": "^4.3.3", 28 | "eslint": "^9.13.0", 29 | "eslint-plugin-react": "^7.37.2", 30 | "eslint-plugin-react-hooks": "^5.0.0", 31 | "eslint-plugin-react-refresh": "^0.4.14", 32 | "globals": "^15.11.0", 33 | "vite": "^5.4.10" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /frontend/src/About.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | const About=()=> { 3 | return ( 4 | <> 5 |

About Infosys

6 |

7 | The future of India will be shaped by today’s younger generation who need quality education through digital literacy, making them productive and self-reliant citizens.

'Digital literacy' is the skills required to achieve digital competence and use of Information and Communication Technology (ICT) for work, leisure, learning and communication. It does not replace traditional forms of literacy, instead complements and amplifies the skills that form the foundation of traditional forms. Infosys Springboard is a free online learning platform that offers digital and professional skills training, including digital literacy, soft skills, life skills, and behavioral skills 8 |

9 | 10 | 11 | ); 12 | } 13 | 14 | export default About; 15 | -------------------------------------------------------------------------------- /frontend/src/App.css: -------------------------------------------------------------------------------- 1 | *{ 2 | box-sizing: border-box; 3 | margin: 0; 4 | padding: 0; 5 | } 6 | .div1{ 7 | background-color: black; 8 | top: 0; 9 | width: 100%; 10 | padding:10px 0; 11 | } 12 | 13 | .div2{ 14 | background-color: gray; 15 | box-sizing: border-box; 16 | width: 100%; 17 | height:auto; 18 | padding: 20px; 19 | } 20 | .footer-copyright { 21 | background-color: #027b9a; 22 | color: #fff; 23 | padding: 15px 30px; 24 | text-align: center; 25 | } 26 | 27 | .footer-copyright-wrapper { 28 | margin-left: auto; 29 | margin-right: auto; 30 | max-width: 1200px; 31 | } 32 | 33 | .footer-copyright-text { 34 | color: #fff; 35 | font-size: 13px; 36 | font-weight: 400; 37 | line-height: 18px; 38 | margin-bottom: 0; 39 | margin-top: 0; 40 | } 41 | 42 | .footer-copyright-link { 43 | color: #fff; 44 | text-decoration: none; 45 | } 46 | 47 | .container 48 | { 49 | margin:0; 50 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Stock Market Platform 2 | 3 | This Stock Market Investment Platforms is an intuitive web application designed to simplify investment portfolio management. The platform offers a suite of comprehensive tools that cater to both novice and experienced investors. Key features include real-time market data, advanced portfolio tracking, in-depth market analysis, and a wealth of educational resources. 4 | 5 | 6 | ## Features 7 | 8 | - Allow users to create and manage their investment portfolios. 9 | - Provide real-time stock market data for users to track stock performance 10 | - Enhance user engagement with educational resources and news 11 | - Provide a seamless and intuitive user interface for portfolio and market management. 12 | 13 | 14 | ## Screenshots 15 | 16 | 17 | ![App Screenshot](screenshots/Picture1.png) 18 | 19 | ![App Screenshot](screenshots/Picture2.png) 20 | 21 | ![App Screenshot](screenshots/Picture3.png) 22 | 23 | ![App Screenshot](screenshots/Picture4.png) 24 | 25 | ![App Screenshot](screenshots/Picture5.png) 26 | 27 | ![App Screenshot](screenshots/Picture6.png) 28 | 29 | -------------------------------------------------------------------------------- /frontend/src/Header.css: -------------------------------------------------------------------------------- 1 | /* General Styles */ 2 | body { 3 | font-family: 'Arial', sans-serif; 4 | background-color: #f0f2f5; 5 | margin: 0; 6 | padding: 0; 7 | } 8 | 9 | /* Header Styles */ 10 | header { 11 | background-color: black; 12 | padding: 10px 20px; 13 | display: flex; 14 | justify-content: center; 15 | align-items: center; 16 | position: relative; 17 | } 18 | 19 | /* Navigation Styles */ 20 | nav { 21 | display: flex; 22 | justify-content: center; 23 | align-items: center; 24 | } 25 | 26 | nav a, nav button { 27 | margin: 0 15px; 28 | color: white; 29 | text-decoration: none; 30 | background: none; 31 | border: none; 32 | cursor: pointer; 33 | } 34 | 35 | nav a:hover, nav button:hover { 36 | text-decoration: underline; 37 | } 38 | 39 | /* Logout Button at Top Left */ 40 | .log { 41 | position: absolute; 42 | top: 10px; 43 | right: 20px; 44 | color: white; 45 | 46 | } 47 | 48 | /* Springboard at Top Right */ 49 | .springboard { 50 | position: absolute; 51 | top: 10px; 52 | left: 20px; 53 | color: white; 54 | } 55 | -------------------------------------------------------------------------------- /frontend/eslint.config.js: -------------------------------------------------------------------------------- 1 | import js from '@eslint/js' 2 | import globals from 'globals' 3 | import react from 'eslint-plugin-react' 4 | import reactHooks from 'eslint-plugin-react-hooks' 5 | import reactRefresh from 'eslint-plugin-react-refresh' 6 | 7 | export default [ 8 | { ignores: ['dist'] }, 9 | { 10 | files: ['**/*.{js,jsx}'], 11 | languageOptions: { 12 | ecmaVersion: 2020, 13 | globals: globals.browser, 14 | parserOptions: { 15 | ecmaVersion: 'latest', 16 | ecmaFeatures: { jsx: true }, 17 | sourceType: 'module', 18 | }, 19 | }, 20 | settings: { react: { version: '18.3' } }, 21 | plugins: { 22 | react, 23 | 'react-hooks': reactHooks, 24 | 'react-refresh': reactRefresh, 25 | }, 26 | rules: { 27 | ...js.configs.recommended.rules, 28 | ...react.configs.recommended.rules, 29 | ...react.configs['jsx-runtime'].rules, 30 | ...reactHooks.configs.recommended.rules, 31 | 'react/jsx-no-target-blank': 'off', 32 | 'react-refresh/only-export-components': [ 33 | 'warn', 34 | { allowConstantExport: true }, 35 | ], 36 | }, 37 | }, 38 | ] 39 | -------------------------------------------------------------------------------- /frontend/src/Dashboard/Card.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import "./Card.css"; 3 | const Card = ({ title, link, image }) => { 4 | const defaultImage = 5 | "https://bsmedia.business-standard.com/_media/bs/img/article/2024-02/06/full/1707182057-9121.jpg?im=FeatureCrop,size=(382,233)"; 6 | 7 | return ( 8 |
9 |
10 |
11 | {title} 16 |
17 |
18 |
19 |
20 | 26 | {title} 27 | 28 |
29 |
30 |
31 |
32 |
33 | ); 34 | }; 35 | 36 | export default Card; 37 | -------------------------------------------------------------------------------- /frontend/src/Header.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Link, useLocation } from 'react-router-dom'; 3 | import './Header.css'; 4 | 5 | const Header = () => { 6 | const location = useLocation(); 7 | const isnotDashboard = location.pathname === "/" || location.pathname === "/contact" || location.pathname === "/login" || location.pathname === "/register" || location.pathname ==="/about"; 8 | 9 | return ( 10 |
11 | 35 | Springboard 36 |
37 | ); 38 | } 39 | 40 | export default Header; 41 | -------------------------------------------------------------------------------- /frontend/src/Dashboard/Learn.css: -------------------------------------------------------------------------------- 1 | /* General Page Styles */ 2 | .learn { 3 | padding: 20px; 4 | max-width: 1200px; 5 | margin: 0 auto; 6 | background-color: #ffffff; 7 | border-radius: 8px; 8 | box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); 9 | } 10 | 11 | .learn h2 { 12 | text-align: center; 13 | color: #4CAF50; 14 | } 15 | 16 | /* Video Grid Layout */ 17 | .video-grid { 18 | display: grid; 19 | grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); 20 | gap: 20px; 21 | margin-top: 20px; 22 | } 23 | 24 | /* Video Item Styling */ 25 | .video-item { 26 | background-color: #f9f9f9; 27 | border-radius: 8px; 28 | box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); 29 | padding: 10px; 30 | text-align: center; 31 | overflow: hidden; 32 | } 33 | 34 | /* Responsive Iframe Styling */ 35 | .video-item iframe { 36 | width: 100%; /* Ensure the video fits within the container */ 37 | height: auto; 38 | } 39 | 40 | .video-item h3 { 41 | font-size: 16px; 42 | color: #333; 43 | } 44 | 45 | .video-item p { 46 | font-size: 14px; 47 | color: #777; 48 | } 49 | 50 | /* Responsive Design */ 51 | @media (max-width: 768px) { 52 | .video-item iframe { 53 | width: 100%; 54 | height: 200px; /* Adjust height for smaller screens */ 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /frontend/src/App.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; 3 | import Header from "./Header"; 4 | import Footer from "./Footer"; 5 | import Home from "./Home"; 6 | import About from "./About"; 7 | import Contact from "./Contact"; 8 | import Login from "./Login"; 9 | import Register from "./Register"; 10 | import Dashboard from "./Dashboard/Dashboard"; 11 | import './App.css'; 12 | import Stock from "./Dashboard/Stock"; 13 | import Portfolio from "./Dashboard/Portfolio"; 14 | import Learn from "./Dashboard/Learn"; 15 | 16 | const App = () => { 17 | return ( 18 | 19 |
20 |
21 |
22 |
23 | 24 | } /> 25 | } /> 26 | } /> 27 | } /> 28 | } /> 29 | } /> 30 | } /> 31 | }/> 32 | }/> 33 | 34 |
35 |