From be411ce3195149d100e275d780c7f5757ea2a962 Mon Sep 17 00:00:00 2001 From: bbcoder2005 Date: Mon, 28 Jul 2025 23:46:50 +0530 Subject: [PATCH] Improving UIUX of a About page --- backend/.env.example | 3 - backend/server.js | 43 +++++++------ src/assets/git_icon.png | Bin 0 -> 6026 bytes src/components/Navbar.tsx | 129 ++++++++++++++------------------------ src/pages/About/About.tsx | 85 ++++++++++++++----------- src/pages/Home/Home.tsx | 3 +- 6 files changed, 122 insertions(+), 141 deletions(-) delete mode 100644 backend/.env.example create mode 100644 src/assets/git_icon.png diff --git a/backend/.env.example b/backend/.env.example deleted file mode 100644 index 98f9688..0000000 --- a/backend/.env.example +++ /dev/null @@ -1,3 +0,0 @@ -PORT=5000 -MONGO_URI=mongodb://localhost:27017/githubTracker -SESSION_SECRET=your-secret-key diff --git a/backend/server.js b/backend/server.js index 3f19f00..4aa453d 100644 --- a/backend/server.js +++ b/backend/server.js @@ -1,39 +1,44 @@ -const express = require('express'); -const mongoose = require('mongoose'); -const session = require('express-session'); -const passport = require('passport'); -const bodyParser = require('body-parser'); -require('dotenv').config(); -const cors = require('cors'); +const express = require("express"); +const mongoose = require("mongoose"); +const session = require("express-session"); +const passport = require("passport"); +const bodyParser = require("body-parser"); +require("dotenv").config(); +const cors = require("cors"); // Passport configuration -require('./config/passportConfig'); +require("./config/passportConfig"); const app = express(); // CORS configuration -app.use(cors('*')); +app.use(cors("*")); // Middleware app.use(bodyParser.json()); -app.use(session({ +app.use( + session({ secret: process.env.SESSION_SECRET, resave: false, saveUninitialized: false, -})); + }) +); app.use(passport.initialize()); app.use(passport.session()); // Routes -const authRoutes = require('./routes/auth'); -app.use('/api/auth', authRoutes); +const authRoutes = require("./routes/auth"); +app.use("/api/auth", authRoutes); // Connect to MongoDB -mongoose.connect(process.env.MONGO_URI, {}).then(() => { - console.log('Connected to MongoDB'); +mongoose + .connect(process.env.MONGO_URI, {}) + .then(() => { + console.log("Connected to MongoDB"); app.listen(process.env.PORT, () => { - console.log(`Server running on port ${process.env.PORT}`); + console.log(`Server running on port ${process.env.PORT}`); }); -}).catch((err) => { - console.log('MongoDB connection error:', err); -}); + }) + .catch((err) => { + console.log("MongoDB connection error:", err); + }); diff --git a/src/assets/git_icon.png b/src/assets/git_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fac8ff1911f0776a73e2afe621ccfe4c4ae14077 GIT binary patch literal 6026 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 literal 0 HcmV?d00001 diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx index bf67ba3..8d61b06 100644 --- a/src/components/Navbar.tsx +++ b/src/components/Navbar.tsx @@ -10,127 +10,92 @@ const Navbar: React.FC = () => { const { toggleTheme, mode } = themeContext; return ( -