Skip to content

Commit 5375457

Browse files
authored
Merge pull request #2 from codeXsidd/dev
update login page
2 parents d1678a2 + 5d90b92 commit 5375457

12 files changed

Lines changed: 127 additions & 9 deletions

frontend/index.html

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,29 @@
66
<link rel="icon" type="image/svg+xml"
77
href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><rect width='32' height='32' rx='8' fill='%236366f1'/><text x='50%' y='55%' dominant-baseline='middle' text-anchor='middle' font-size='18' font-family='sans-serif'>📚</text></svg>" />
88
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
9-
<meta name="description"
10-
content="StudyTrack — Your personal student workspace. Track attendance, GPA, assignments, and study habits all in one place." />
9+
10+
<!-- Primary Meta Tags -->
11+
<title>StudyTrack — Premium AI-Powered Student Productivity Workspace</title>
12+
<meta name="title" content="StudyTrack — Premium AI-Powered Student Productivity Workspace" />
13+
<meta name="description" content="An all-in-one, ultra-premium personal student workspace. AI-powered tutor, study tracker, gamified progress, GPA predictor, and deep focus room." />
14+
<meta name="keywords" content="student workspace, study tracker, AI tutor, GPA calculator, study habits, student productivity, gamified learning" />
15+
<meta name="author" content="StudyTrack" />
16+
<meta name="robots" content="index, follow" />
1117
<meta name="theme-color" content="#6366f1" />
12-
<title>StudyTrack — Personal Student Workspace</title>
18+
19+
<!-- Open Graph / Facebook -->
20+
<meta property="og:type" content="website" />
21+
<meta property="og:url" content="https://studytrack-hub.vercel.app/" />
22+
<meta property="og:title" content="StudyTrack — AI-Powered Student Productivity Workspace" />
23+
<meta property="og:description" content="Transform academic chaos into peak productivity. Beat procrastination, build routines, and study smarter with Gemini AI." />
24+
<meta property="og:image" content="https://studytrack-hub.vercel.app/og-image.jpg" />
25+
26+
<!-- Twitter -->
27+
<meta property="twitter:card" content="summary_large_image" />
28+
<meta property="twitter:url" content="https://studytrack-hub.vercel.app/" />
29+
<meta property="twitter:title" content="StudyTrack — AI-Powered Student Productivity Workspace" />
30+
<meta property="twitter:description" content="Transform academic chaos into peak productivity. Beat procrastination, build routines, and study smarter with Gemini AI." />
31+
<meta property="twitter:image" content="https://studytrack-hub.vercel.app/og-image.jpg" />
1332
</head>
1433

1534
<body>

frontend/package-lock.json

Lines changed: 48 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"react": "^19.2.4",
2424
"react-chartjs-2": "^5.3.1",
2525
"react-dom": "^19.2.4",
26+
"react-helmet-async": "^3.0.0",
2627
"react-hot-toast": "^2.6.0",
2728
"react-router-dom": "^7.13.1"
2829
}

frontend/public/robots.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
User-agent: *
2+
Allow: /
3+
Sitemap: https://studytrack-hub.vercel.app/sitemap.xml

frontend/public/sitemap.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3+
<url><loc>https://studytrack-hub.vercel.app/</loc></url>
4+
<url><loc>https://studytrack-hub.vercel.app/login</loc></url>
5+
<url><loc>https://studytrack-hub.vercel.app/register</loc></url>
6+
<url><loc>https://studytrack-hub.vercel.app/subjects</loc></url>
7+
<url><loc>https://studytrack-hub.vercel.app/assignments</loc></url>
8+
<url><loc>https://studytrack-hub.vercel.app/pomodoro</loc></url>
9+
<url><loc>https://studytrack-hub.vercel.app/gpa</loc></url>
10+
<url><loc>https://studytrack-hub.vercel.app/timetable</loc></url>
11+
<url><loc>https://studytrack-hub.vercel.app/focus-room</loc></url>
12+
<url><loc>https://studytrack-hub.vercel.app/ai-chat</loc></url>
13+
</urlset>

frontend/src/App.jsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import React from 'react';
2+
import { HelmetProvider } from 'react-helmet-async';
23
import { BrowserRouter, Routes, Route, Navigate, useLocation } from 'react-router-dom';
34
import { useEffect } from 'react';
45
import { Toaster } from 'react-hot-toast';
@@ -88,8 +89,9 @@ const AppRoutes = () => {
8889

8990
function App() {
9091
return (
91-
<AuthProvider>
92-
<BrowserRouter>
92+
<HelmetProvider>
93+
<AuthProvider>
94+
<BrowserRouter>
9395
<AppRoutes />
9496
<Toaster position="top-right" toastOptions={{
9597
style: { background: '#1a1a2e', color: '#e2e8f0', border: '1px solid rgba(99,102,241,0.2)', borderRadius: '10px', fontFamily: 'Inter, sans-serif', fontSize: '0.875rem' },
@@ -98,6 +100,7 @@ function App() {
98100
}} />
99101
</BrowserRouter>
100102
</AuthProvider>
103+
</HelmetProvider>
101104
);
102105
}
103106

frontend/src/pages/AiChatPage.jsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import React, { useState, useEffect, useRef } from 'react';
2+
import { Helmet } from 'react-helmet-async';
23
import { Send, Bot, User, Sparkles, Trash2, Brain, Zap, Clock, MessageSquare, Target, Coffee, Layout, Calendar, Flame } from 'lucide-react';
34
import API, { aiChat } from '../services/api';
45
import toast from 'react-hot-toast';
@@ -139,6 +140,10 @@ const AiChatPage = () => {
139140

140141
return (
141142
<div className="page-container animate-fade-in chat-layout" style={{ display: 'flex', gap: '1.5rem', height: '100%', maxWidth: '1400px', margin: '0 auto', overflow: 'hidden', padding: '1rem', position: 'relative' }}>
143+
<Helmet>
144+
<title>AI Study Buddy — StudyTrack</title>
145+
<meta name="description" content="Chat with your AI Study Buddy to break down tasks, learn new concepts, and build the perfect study plan." />
146+
</Helmet>
142147

143148
{/* Backdrop for mobile sidebar */}
144149
{showSidebar && (

frontend/src/pages/DashboardPage.jsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import React, { useEffect, useState } from 'react';
2+
import { Helmet } from 'react-helmet-async';
23
import { Link } from 'react-router-dom';
34
import { useAuth } from '../context/AuthContext';
45
import API, { getUpcoming, getHabits, toggleHabit, aiChat, addXP } from '../services/api';
@@ -221,6 +222,10 @@ const DashboardPage = () => {
221222

222223
return (
223224
<div className="page-container animate-slide-scale">
225+
<Helmet>
226+
<title>Dashboard — StudyTrack</title>
227+
<meta name="description" content="View your upcoming classes, deadlines, habits, and study streak on StudyTrack." />
228+
</Helmet>
224229

225230
{/* ── HERO HEADER ── */}
226231
<div style={{

frontend/src/pages/FocusRoomPage.jsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import React, { useState, useEffect, useRef } from 'react';
2+
import { Helmet } from 'react-helmet-async';
23
import { Timer, Play, Pause, Coffee, BookOpen, Clock, Zap, Target, Bot, Send } from 'lucide-react';
34
import API, { addXP, aiChat } from '../services/api';
45
import toast from 'react-hot-toast';
@@ -141,6 +142,10 @@ const FocusRoomPage = () => {
141142

142143
return (
143144
<div style={{ height: 'calc(100vh - 40px)', margin: '-1.5rem', background: '#050510', position: 'relative', overflow: 'hidden' }}>
145+
<Helmet>
146+
<title>Deep Focus Room — StudyTrack</title>
147+
<meta name="description" content="Eliminate distractions and achieve flow state with Pomodoro timers and our AI Study Tutor." />
148+
</Helmet>
144149
{/* Ambient Background - Lofi video iframe (No controls, looping) */}
145150
<div style={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%', opacity: 0.2, pointerEvents: 'none', zIndex: 0 }}>
146151
{/* Embedded Lofi Girl Radio or Similar */}

frontend/src/pages/GpaCalculatorPage.jsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import React, { useState, useEffect, useCallback } from 'react';
2+
import { Helmet } from 'react-helmet-async';
23
import { GraduationCap, Plus, Trash2, Save, TrendingUp, ChevronRight, Award, RefreshCw } from 'lucide-react';
34
import { Line } from 'react-chartjs-2';
45
import {
@@ -204,6 +205,10 @@ const GpaCalculatorPage = () => {
204205

205206
return (
206207
<div style={{ maxWidth: 1100, margin: '0 auto', padding: '2rem 1.5rem' }}>
208+
<Helmet>
209+
<title>GPA & CGPA Predictor StudyTrack</title>
210+
<meta name="description" content="Use the AI Predictor to calculate the exact SGPA you need to reach your target CGPA." />
211+
</Helmet>
207212
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: '1.5rem' }}>
208213
<h2 style={{ display: 'flex', alignItems: 'center', gap: 8, fontSize: '1.5rem', fontWeight: 700 }}>
209214
<GraduationCap size={26} color="#6366f1" /> GPA / CGPA Calculator

0 commit comments

Comments
 (0)