diff --git a/index.html b/index.html index 1cd34fa..9a9e52c 100644 --- a/index.html +++ b/index.html @@ -24,9 +24,9 @@ href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&family=Newsreader:ital,opsz,wght@0,6..72,300;0,6..72,400;1,6..72,400&display=swap" rel="stylesheet" /> - + - +
@@ -143,26 +143,23 @@

Projects

from community logic.

- ManBot

The deployment interface. Designed to integrate the collective model back into Discord environments.

-
+

Blogs

-
diff --git a/script.js b/script.js index 8c62acd..dd5ac75 100644 --- a/script.js +++ b/script.js @@ -129,10 +129,17 @@ async function renderBlogs() { } } - container.innerHTML = - loadedCount > 0 - ? html - : '
No publications found.
'; + if (loadedCount === 0) { + container.innerHTML = '
No publications found.
'; + return; + } + + container.innerHTML = ` +
+
+ ${html}${html} +
+
`; } function openBlog(file) { @@ -195,8 +202,8 @@ async function loadAllMembers() { async function loadTeamMembers() { try { const [teamsRes, membersRes] = await Promise.all([ - fetch("src/teams.json"), - fetch("src/members.json"), + fetch("src/teams.json?v=" + Date.now()), + fetch("src/members.json?v=" + Date.now()), ]); if (!teamsRes.ok) throw new Error("Failed to load teams.json"); @@ -292,6 +299,83 @@ function renderTeamContent() {
${html}${viewAllHtml}
`; } +function openManBot() { + document.getElementById("modal-content").innerHTML = ` +
+ + + View on GitHub + +
+ +
+
+

The Discord bot that acts as the official interface for ManGPT, developed by Team OpenDIH. ManBot is specifically trained on the anonymized chat messages from Manware Discord server.

+

The bot is currently under development.

+
+ +
+

Contribution Guidelines

+
    +
  1. Fork this repository first. (This is for safety of the repo for any breaking changes.)
  2. +
  3. Clone your forked repository to your local machine.
  4. +
  5. Run the requirements file: pip install -r requirements.txt
  6. +
  7. Create a new branch for your feature or bug fix.
  8. +
  9. Make your changes. Test it locally before creating a pull request.
  10. +
  11. Make a pull request to parent repository OpenDih/ManBot
  12. +
  13. Describe the changes made and why they're needed in the pull request description.
  14. +
  15. Wait for review from the Bot Lead.
  16. +
+
+ +
+

Guide for Issues

+

When reporting issues, please include:

+
    +
  • Detailed description of the problem
  • +
  • Steps to reproduce
  • +
  • Expected vs Actual behavior
  • +
  • Environment details (Python version, etc.)
  • +
+
+ +
+

Troubleshooting

+

Bot won't start:

+
    +
  • Check if .env file exists and contains valid tokens
  • +
  • Verify Discord token has proper permissions
  • +
  • Ensure Python version is 3.8+
  • +
+

Bot not responding:

+
    +
  • Check if bot has message permissions in the channel
  • +
  • Verify the ManGPT API endpoint is accessible
  • +
  • Check bot is mentioned or replied to correctly
  • +
+

Connection issues:

+
    +
  • The bot includes automatic retry logic for connection problems
  • +
  • Wait for exponential backoff to complete — it will attempt 5 times to reconnect
  • +
+
+ +
+

Support

+
    +
  • Check existing issues for similar problems
  • +
  • Create an issue in the repository, following the issues guideline
  • +
  • Contact the Bot Lead @atshayk directly for any pressing matters
  • +
+
+
+

+ `; + + document.getElementById("modal-overlay").classList.add("active"); + document.body.style.overflow = "hidden"; +} + function closeModal() { document.getElementById("modal-overlay").classList.remove("active"); document.body.style.overflow = "auto"; diff --git a/src/avatars/MONSTER13LIAR.jpg b/src/avatars/MONSTER13LIAR.jpg new file mode 100644 index 0000000..54d3a93 Binary files /dev/null and b/src/avatars/MONSTER13LIAR.jpg differ diff --git a/src/blogs/02-04-2026.json b/src/blogs/02-04-2026.json new file mode 100644 index 0000000..0cb359d --- /dev/null +++ b/src/blogs/02-04-2026.json @@ -0,0 +1,7 @@ +{ + "title": "Joining the Frontend — A New Chapter", + "excerpt": "From joining as a frontend developer to handling all website changes, and why I love the idea of training an LLM on Discord data.", + "by": "MONSTER13LIAR", + "role": "Frontend Labour", + "content": "

I was joined in the organization as a frontend developer and now I am handling all the changes of the website, to make it look more professional than our bots.

I really like the idea of training an LLM on a Discord server's datasets. Through the weeks we have decided to work on the ManGPT bot.

" +} diff --git a/src/members.json b/src/members.json index 86292e5..ee06d52 100644 --- a/src/members.json +++ b/src/members.json @@ -95,6 +95,12 @@ "name": "RaptorOG", "avatar_url": "https://avatars.githubusercontent.com/u/166996891?v=4", "html_url": "https://github.com/Raptor0G" + }, + { + "login": "MONSTER13LIAR", + "name": "Abhijay", + "avatar_url": "src/avatars/MONSTER13LIAR.jpg", + "html_url": "https://github.com/MONSTER13LIAR" } ] } diff --git a/src/teams.json b/src/teams.json index 2b3a098..aa8d733 100644 --- a/src/teams.json +++ b/src/teams.json @@ -53,7 +53,7 @@ { "name": "Frontend Engineers", "description": "Contributes to website and frontend projects.", - "members": ["divyanshudhruv", "siddbhatt18"] + "members": ["divyanshudhruv", "siddbhatt18", "MONSTER13LIAR"] }, { "name": "Others", diff --git a/style.css b/style.css index 9b28195..fe77f67 100644 --- a/style.css +++ b/style.css @@ -4,7 +4,7 @@ --text-main: #1c1b1a; --text-muted: #575653; --border-color: #e6e4df; - --accent: #001ddb; + --accent: #a020f0; --nav-bg: rgba(253, 252, 249, 0.95); --modal-bg: rgba(253, 252, 249, 0.98); --hover-bg: #f0eee9; @@ -12,6 +12,7 @@ --scrollbar-thumb: #d1cdc7; --scrollbar-thumb-hover: #b5b1a9; --scrollbar-track: transparent; + --grid-color: rgba(0, 0, 0, 0.045); } /*#d96c4a*/ @@ -21,13 +22,14 @@ --text-main: #f0ede8; --text-muted: #8a8680; --border-color: #2a2826; - --accent: #6677e9; + --accent: #b44ff0; --nav-bg: rgba(17, 17, 16, 0.95); --modal-bg: rgba(17, 17, 16, 0.98); --hover-bg: #222120; --shadow: rgba(0, 0, 0, 0.2); --scrollbar-thumb: #3a3836; --scrollbar-thumb-hover: #4a4846; + --grid-color: rgba(255, 255, 255, 0.04); } ::-webkit-scrollbar { @@ -56,9 +58,19 @@ html { scroll-behavior: smooth; } +@keyframes gridScroll { + from { background-position: 0 0; } + to { background-position: 40px 0; } +} + body { margin: 0; background-color: var(--bg-color); + background-image: + linear-gradient(var(--grid-color) 1px, transparent 1px), + linear-gradient(90deg, var(--grid-color) 1px, transparent 1px); + background-size: 40px 40px; + animation: gridScroll 4s linear infinite; color: var(--text-main); font-family: "Inter", sans-serif; font-size: 1.1rem; @@ -85,34 +97,13 @@ nav { top: 0; width: 100%; display: flex; - justify-content: space-between; align-items: center; padding: 20px 40px; - background: var(--nav-bg); - backdrop-filter: blur(8px); + background: transparent; z-index: 100; - border-bottom: none; transition: background 0.3s ease; } -nav::after { - content: ""; - position: absolute; - bottom: 0; - left: 50%; - transform: translateX(-50%); - width: 80%; - height: 1px; - background: linear-gradient( - to right, - transparent, - rgba(160, 32, 240, 0.3) 20%, - rgba(160, 32, 240, 0.8) 50%, - rgba(160, 32, 240, 0.3) 80%, - transparent - ); -} - .nav-logo { font-size: 2rem; text-decoration: none; @@ -152,9 +143,20 @@ nav::after { } .nav-right { + position: absolute; + left: 50%; + transform: translateX(-50%); display: flex; align-items: center; - gap: 40px; + gap: 28px; + background: var(--nav-bg); + backdrop-filter: blur(12px); + border-radius: 100px; + border: 1px solid var(--border-color); + padding: 8px 10px 8px 24px; + box-shadow: 0 4px 20px var(--shadow); + transition: background 0.3s ease, border-color 0.3s ease; + white-space: nowrap; } .nav-links { @@ -421,8 +423,10 @@ tr:last-child td { transform: scaleY(1); } -.model-card:hover { +.model-card:hover, +.model-card:focus { border-color: var(--accent); + outline-color: var(--accent); transform: translateY(-2px); box-shadow: 0 8px 24px var(--shadow); } @@ -470,9 +474,52 @@ tr:last-child td { gap: 16px; } +.blog-track-wrapper { + position: relative; + overflow: hidden; +} + +.blog-track-wrapper::before, +.blog-track-wrapper::after { + content: ""; + position: absolute; + top: 0; + bottom: 0; + width: 140px; + z-index: 2; + pointer-events: none; +} + +.blog-track-wrapper::before { + left: 0; + background: linear-gradient(to right, var(--bg-color) 0%, transparent 100%); +} + +.blog-track-wrapper::after { + right: 0; + background: linear-gradient(to left, var(--bg-color) 0%, transparent 100%); +} + +.blog-track { + display: flex; + gap: 16px; + width: max-content; + animation: blog-scroll 35s linear infinite; +} + +.blog-track:hover { + animation-play-state: paused; +} + +@keyframes blog-scroll { + 0% { transform: translateX(0); } + 100% { transform: translateX(-50%); } +} + .blog-item { display: flex; - align-items: center; + flex-direction: column; + justify-content: space-between; gap: 20px; background: var(--surface-color); padding: 24px 28px; @@ -483,6 +530,10 @@ tr:last-child td { transition: border-color 0.2s, background 0.3s, transform 0.2s, box-shadow 0.3s; position: relative; overflow: hidden; + width: 420px; + height: 200px; + flex-shrink: 0; + box-sizing: border-box; } .blog-item::before { @@ -501,8 +552,10 @@ tr:last-child td { transform: scaleY(1); } -.blog-item:hover { +.blog-item:hover, +.blog-item:focus { border-color: var(--accent); + outline-color: var(--accent); transform: translateY(-2px); box-shadow: 0 8px 24px var(--shadow); } @@ -853,6 +906,102 @@ tr:last-child td { } +.github-btn { + display: inline-flex; + align-items: center; + gap: 8px; + padding: 10px 20px; + border: 1px solid var(--border-color); + background: var(--surface-color); + color: var(--text-main); + text-decoration: none; + font-size: 0.9rem; + border-radius: 4px; + transition: border-color 0.2s, color 0.2s, background 0.2s; + white-space: nowrap; +} + +.github-btn:hover { + border-color: var(--accent); + color: var(--accent); +} + +.github-btn i { + font-size: 1.1rem; +} + +.info-cards { + display: flex; + flex-direction: column; + gap: 16px; +} + +.info-card { + background: var(--surface-color); + border: 1px solid var(--border-color); + padding: 28px 32px; + transition: background 0.3s, border-color 0.3s; +} + +.info-card-title { + font-family: "Inter", sans-serif; + font-size: 0.8rem; + font-weight: 500; + text-transform: uppercase; + letter-spacing: 0.08em; + color: var(--accent); + margin: 0 0 16px 0; +} + +.info-card p { + color: var(--text-muted); + font-size: 1rem; + font-weight: 300; + margin: 0 0 12px 0; + line-height: 1.7; + transition: color 0.3s; +} + +.info-card p:last-child { + margin-bottom: 0; +} + +.info-card strong { + color: var(--text-main); + font-weight: 500; +} + +.info-list { + color: var(--text-muted); + font-size: 1rem; + font-weight: 300; + line-height: 1.8; + padding-left: 20px; + margin: 0 0 12px 0; +} + +.info-list:last-child { + margin-bottom: 0; +} + +.info-card code { + font-family: monospace; + font-size: 0.9em; + background: var(--hover-bg); + padding: 2px 6px; + border-radius: 3px; + color: var(--text-main); +} + +.manbot-header { + display: flex; + align-items: center; + justify-content: space-between; + flex-wrap: wrap; + gap: 16px; + margin-bottom: 32px; +} + footer { padding: 60px 0; font-size: 0.9rem; @@ -888,6 +1037,28 @@ footer::before { .nav-links { display: none; } + + nav { + flex-direction: column; + align-items: center; + padding: 12px 20px; + gap: 8px; + } + + .nav-right { + position: relative; + left: auto; + transform: none; + } + + .nav-logo-img, + [data-theme="dark"] .nav-logo-dark { + height: 4rem; + } + header.hero { + padding-top: 260px; + } + .hero h1 { font-size: 3rem; }