diff --git a/App.css b/App.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/App.js b/App.js new file mode 100644 index 0000000000..756b9c88c3 --- /dev/null +++ b/App.js @@ -0,0 +1,60 @@ + +import LandingPage from './pages/Landingpage'; +//import Home from './Home'; +import Navbar from './navbar'; +//import Home from './Home'; + +import { BrowserRouter as Router , Route, Switch } from 'react-router-dom/cjs/react-router-dom.min'; +import LoginPage from './pages/LoginPage'; +import Dashbaoard from './pages/dasboard'; +import GradeReport from './pages/GradeReport'; +import MissingGradeform from './pages/MissingGrade form'; +import InstructorContact from './pages/InstructorContact'; +import Help from './pages/Help' +import './index.css'; + + + + + + + +function App() { + + const pageStyle = { + //backgroundColor:'#2ecc71', + minHeight: '100vh', + + + } ; + return( + +
+ + + +
+ + + + + + + + + + + + + +
+ + + +
+
+ + ) +} + +export default App; diff --git a/App.test.js b/App.test.js new file mode 100644 index 0000000000..1f03afeece --- /dev/null +++ b/App.test.js @@ -0,0 +1,8 @@ +import { render, screen } from '@testing-library/react'; +import App from './App'; + +test('renders learn react link', () => { + render(); + const linkElement = screen.getByText(/learn react/i); + expect(linkElement).toBeInTheDocument(); +}); diff --git a/GradeReport.css b/GradeReport.css new file mode 100644 index 0000000000..81f7f3a921 --- /dev/null +++ b/GradeReport.css @@ -0,0 +1,15 @@ + + +.grade-report-container { + display: flex; + justify-content: space-around; + margin: 20px; + } + + .filter-container, + .grade-list-container { + width: 45%; + } + + + \ No newline at end of file diff --git a/Help.js b/Help.js new file mode 100644 index 0000000000..711ab73f1a --- /dev/null +++ b/Help.js @@ -0,0 +1,11 @@ +import React from 'react' +import { Link } from 'react-router-dom' +function Help() { + return ( +
+ Help page +
+ ) +} + +export default Help \ No newline at end of file diff --git a/InstructorContact.js b/InstructorContact.js new file mode 100644 index 0000000000..d44cd3316e --- /dev/null +++ b/InstructorContact.js @@ -0,0 +1,101 @@ + +import { Link } from 'react-router-dom'; +import React, { useState } from 'react'; +import './InstructorContactPage.css'; +import 'tailwindcss/tailwind.css'; + +function InstructorContact() { + const [selectedInstructor, setSelectedInstructor] = useState(null); + const [emailSubject, setEmailSubject] = useState(''); + const [emailBody, setEmailBody] = useState(''); + const [confirmationMessage, setConfirmationMessage] = useState(''); + + const instructors = [ + { id: 1, name: 'John Doe', email: 'john.doe@example.com' }, + { id: 2, name: 'Jane Smith', email: 'jane.smith@example.com' }, + { id: 3, name: 'Bob Johnson', email: 'bob.johnson@example.com' }, + // Add more instructors as needed + ]; + + const handleInstructorSelect = (instructor) => { + setSelectedInstructor(instructor); + }; + + const handleEmailChange = (e) => { + setEmailSubject(e.target.value); + }; + + const handleBodyChange = (e) => { + setEmailBody(e.target.value); + }; + + const handleSendEmail = () => { + // Perform any email sending logic (mock-up) + setConfirmationMessage(`Email sent to ${selectedInstructor.name} successfully!`); + }; + + return ( +
+
+

Instructor Contact List

+
    + {instructors.map((instructor) => ( +
  • handleInstructorSelect(instructor)} + > + {instructor.name} +
  • + ))} +
+
+ {selectedInstructor && ( +
+

{`Contact ${selectedInstructor.name}`}

+
+
+ + +
+
+ + +
+ +
+ {confirmationMessage &&

{confirmationMessage}

} +
+ )} +
+ ); +} + +export default InstructorContact; \ No newline at end of file diff --git a/Landingpage.js b/Landingpage.js new file mode 100644 index 0000000000..c441c5b46c --- /dev/null +++ b/Landingpage.js @@ -0,0 +1,35 @@ +// LandingPage.js + +import React from 'react'; +import "tailwindcss/tailwind.css"; +import './home.css' + +const LandingPage = () => { + return ( +
+
+

Missing Grade System

+

+ Welcome to the Missing Grade System, a platform designed to track and manage missing grades efficiently. +

+

Overview

+

+ The Missing Grade System aims to streamline the process of identifying and addressing missing grades in educational institutions. It provides a centralized platform for teachers, students, and administrators to collaborate and resolve missing grade issues. +

+

Reason for Creation

+

+ The primary goal behind creating this system is to enhance communication and transparency regarding missing grades. By offering a user-friendly interface, it simplifies the tracking of missing grades, reducing administrative burden and ensuring timely resolution. +

+

Features

+
    +
  • Efficient tracking of missing grades.
  • +
  • Real-time notifications for teachers and students.
  • +
  • Collaborative tools for communication between stakeholders.
  • +
  • Automated reminders for pending grade submissions.
  • +
+
+
+ ); +}; + +export default LandingPage; diff --git a/LoginPage.js b/LoginPage.js new file mode 100644 index 0000000000..4d1c1e056f --- /dev/null +++ b/LoginPage.js @@ -0,0 +1,62 @@ + + +import { Link } from 'react-router-dom'; +import React, { useState, createContext, useContext} from 'react'; + +import './login.css'; + +const LoginPage = () => { + + const [studentId, setStudentId] = useState(''); + const [pin, setPin] = useState(''); + const [error, setError] = useState(''); + + const handleLogin = () => { + + if (studentId === '12345' && pin === '1234') { + + } else { + setError('Invalid Student ID or PIN'); + } + }; + + return ( +
+
+

Student Login

+ {error &&

{error}

} +
+
+ + setStudentId(e.target.value)} + /> +
+
+ + setPin(e.target.value)} + /> +
+ +
+
+
+ ); +}; + +export default LoginPage; diff --git a/Mark.jpeg b/Mark.jpeg new file mode 100644 index 0000000000..685af981f2 Binary files /dev/null and b/Mark.jpeg differ diff --git a/MissingGrade form.js b/MissingGrade form.js new file mode 100644 index 0000000000..5e2b079c62 --- /dev/null +++ b/MissingGrade form.js @@ -0,0 +1,107 @@ + +import { Link } from 'react-router-dom'; +import React, { useState } from 'react'; +import './MissingGradeForm.css'; +import 'tailwindcss/tailwind.css'; + +function MissingGradeform() { + const [formData, setFormData] = useState({ + courseName: '', + instructorName: '', + expectedGrade: '', + explanation: '', + }); + + const [confirmationMessage, setConfirmationMessage] = useState(''); + + const handleChange = (e) => { + const { name, value } = e.target; + setFormData((prevFormData) => ({ + ...prevFormData, + [name]: value, + })); + }; + + const handleSubmit = (e) => { + e.preventDefault(); + + // Perform any validation or data processing here + + // Display a confirmation message + setConfirmationMessage('Grade report submitted successfully!'); + }; + + return ( +
+

Missing Grade Report Form

+ {confirmationMessage ? ( +

{confirmationMessage}

+ ) : ( +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ )} +
+ ); +}; +export default MissingGradeform; \ No newline at end of file diff --git a/MissingGradeForm.css b/MissingGradeForm.css new file mode 100644 index 0000000000..27cd08942b --- /dev/null +++ b/MissingGradeForm.css @@ -0,0 +1,9 @@ +/* MissingGradeForm.css */ + +.missing-grade-form-container { + max-width: 500px; + margin: 20px auto; + } + + /* Add more styles as needed */ + \ No newline at end of file diff --git a/README.md b/README.md index cce66cb7d4..12ed023b06 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ # Student Grade Reporting System Frontend +# Author +## Name : Edward Sefah Koranteng +## ID : 11137631 ## Project Overview @@ -37,7 +40,71 @@ This will start the application on `localhost` at the default port. ## Usage -Describe how to use the application, highlighting key functionalities such as logging in, viewing grades, reporting missing grades, and contacting instructors. + + +User Flow: +Landing Page: + +Upon visiting the site, users are greeted with an overview of the system. +Navigation links are provided to guide users to different sections. +Login Page: + +Users access the system by entering their Student ID and PIN. +The secure login form validates user credentials. +Dashboard: + +After successful login, users land on the dashboard. +The dashboard provides an overview of the student's current grades. +Alerts or notifications highlight any missing grades. +Grade Report Page: + +Users can navigate to the Grade Report page to view detailed information on all courses and respective grades. +Options to filter grades by semester/academic year are available. +Missing Grade Form Page: + +If a student identifies a missing grade, they can visit the Missing Grade Form page. +The form includes fields for Course name, Instructor name, Expected grade, and an Explanation field. +Users submit the form to report the missing grade. +Instructor Contact Page: + +The system provides a list of instructors with contact details. +Users have the option to send a simulated email to the instructor (mock-up). +Help and Support Page: + +An FAQ section provides guidance on grade reporting. +A contact form for technical support (mock-up) is available. +Navigation: +A navbar/sidebar is present for easy navigation. +A footer provides additional information and copyright details. +Key Functionalities: +Responsive Design: + +The website is designed to be responsive, ensuring a seamless experience on various devices. +Secure Login: + +Users access the system with a secure login form using Student ID and PIN. +Dashboard: + +Users can view an overview of their current grades on the dashboard. +Alerts notify users of any missing grades. +Grade Report: + +Detailed information on all courses and respective grades is available. +Filtering options provide flexibility to view grades based on semester/academic year. +Missing Grade Reporting: + +Users can report missing grades using a form with necessary details. +A confirmation message assures users of successful submission. +Instructor Contact: + +Users can find a list of instructors with contact details. +Simulated email functionality allows users to communicate with instructors. +Help and Support: + +An FAQ section guides users on grade reporting. +A contact form (mock-up) is available for technical support. +This user flow and key functionalities ensure a comprehensive and user-friendly experience for students interacting with the Missing Grade Reporting System. + ## Contribution diff --git a/dasboard.js b/dasboard.js new file mode 100644 index 0000000000..0f1ad738f5 --- /dev/null +++ b/dasboard.js @@ -0,0 +1,46 @@ +import React from "react"; +import { Link } from "react-router-dom"; +import './Dashboard.css'; +import 'tailwindcss/tailwind.css'; + + +const Dashbaoard = () => { + const studentGrades = [ + { subject: 'Math', grade: 'A' }, + { subject: 'Science', grade: 'B' }, + { subject: 'English', grade: 'C' }, + // Add more subjects and grades as needed + ]; + + const missingGrades = [ + { subject: 'History' }, + // Add more missing subjects as needed + ]; + + return ( +
+
+

Student's Current Grades

+
    + {studentGrades.map((grade, index) => ( +
  • {`${grade.subject}: ${grade.grade}`}
  • + ))} +
+
+
+

Missing Grades Alerts

+ {missingGrades.length === 0 ? ( +

No missing grades. Great job!

+ ) : ( +
    + {missingGrades.map((missingGrade, index) => ( +
  • {`${missingGrade.subject} - Missing Grade`}
  • + ))} +
+ )} +
+
+ ); +} + +export default Dashbaoard; \ No newline at end of file diff --git a/hback.jpg b/hback.jpg new file mode 100644 index 0000000000..2c615e0799 Binary files /dev/null and b/hback.jpg differ diff --git a/home.css b/home.css new file mode 100644 index 0000000000..0698bc6285 --- /dev/null +++ b/home.css @@ -0,0 +1,44 @@ +/* App.css */ + +body { + margin: 0; + padding: 0; + font-family: 'Arial', sans-serif; + background-color: #f0f4f7; + color: tomato; + } + + .container { + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + } + + .landingPage-box{ + width: 500px; + padding: 20px; + background: #fff; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); + border-radius: 8px; + } + + h1 { + text-align: center; + color: #333; + } + + p { + color:#555; + } + + ul { + list-style: none; + padding: 0; + } + + li { + margin-bottom: 10px; + } + + \ No newline at end of file diff --git a/index.css b/index.css new file mode 100644 index 0000000000..ed74f8a28c --- /dev/null +++ b/index.css @@ -0,0 +1,57 @@ +font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', +'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', +sans-serif; + /*base styles*/ + { + margin: 0; + + + } + .navbar{ + padding: 20px; + display: flex; + align-items: center; + max-width: 5000px; + margin:0 auto; + border-bottom: 1px solid #401e1e; + background-color: #331e15 ; + position: fixed; + margin-top: -50px; + height: 50px; + margin-left: -20px; + width: 5000px; + background-image: url("data:image/jpeg;base64,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"); + + color: rgb(34, 6, 52) + + + } + .navbar h1{ + color:rgb(57, 42, 11))); + margin-left:20px; + } + .navbar.links { + margin-left: auto; + + } + .navbar a{ + margin-left: 20px; + text-decoration: none; + padding: 18px; + text-decoration: none; + padding: 16px; + } + .navbar a:hover{ + color:rgb(26, 39, 56) + + }.content{ + max-width: 600px; + margin: 40px auto; + padding: 26px; + color:rgb(33, 5, 5); + } + + + + + \ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 0000000000..d563c0fb10 --- /dev/null +++ b/index.js @@ -0,0 +1,17 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import './index.css'; +import App from './App'; +import reportWebVitals from './reportWebVitals'; + +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render( + + + +); + +// If you want to start measuring performance in your app, pass a function +// to log results (for example: reportWebVitals(console.log)) +// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals +reportWebVitals(); diff --git a/login.css b/login.css new file mode 100644 index 0000000000..5582f9248a --- /dev/null +++ b/login.css @@ -0,0 +1,59 @@ +/* App.css */ + +body { + margin: 0; + padding: 0; + font-family: 'Arial', sans-serif; + background-color: #f0f4f7; + } + + container { + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + } + + login-box { + width: 300px; + padding: 20px; + background: #fff; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); + border-radius: 8px; + } + + h1 { + text-align: center; + color: #333; + } + + form { + display: flex; + flex-direction: column; + } + + label { + margin: 10px 0 5px; + color: #555; + } + + input { + padding: 10px; + margin-bottom: 10px; + border: 1px solid #ccc; + border-radius: 4px; + } + + button { + background-color: #3498db; + color: #fff; + padding: 10px; + border: none; + border-radius: 4px; + cursor: pointer; + } + + button:hover { + background-color: #2980b9; + } + \ No newline at end of file diff --git a/logo.svg b/logo.svg new file mode 100644 index 0000000000..9dfc1c058c --- /dev/null +++ b/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/navbar.js b/navbar.js new file mode 100644 index 0000000000..314e379dd4 --- /dev/null +++ b/navbar.js @@ -0,0 +1,37 @@ + +import {Link } from 'react-router-dom'; +//import backgroundImage from './hback.jpg'; + +const Navbar = () => { + + const styles = { + + color: 'blue', + borderRadius:'8px', + fontSize :"16px", + + + + }; + return ( + + + + + ); +} + +export default Navbar; \ No newline at end of file diff --git a/reportWebVitals.js b/reportWebVitals.js new file mode 100644 index 0000000000..5253d3ad9e --- /dev/null +++ b/reportWebVitals.js @@ -0,0 +1,13 @@ +const reportWebVitals = onPerfEntry => { + if (onPerfEntry && onPerfEntry instanceof Function) { + import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + }); + } +}; + +export default reportWebVitals; diff --git a/setupTests.js b/setupTests.js new file mode 100644 index 0000000000..8f2609b7b3 --- /dev/null +++ b/setupTests.js @@ -0,0 +1,5 @@ +// jest-dom adds custom jest matchers for asserting on DOM nodes. +// allows you to do things like: +// expect(element).toHaveTextContent(/react/i) +// learn more: https://github.com/testing-library/jest-dom +import '@testing-library/jest-dom'; diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000000..a78b3a8d38 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,9 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [], + theme: { + extend: {}, + }, + plugins: [], +} +