-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
16 changed files
with
818 additions
and
138 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
## Project Requirements for Unidash: A University Portal Aggregator | ||
|
||
### 1. Overview | ||
Unidash is a web application designed to consolidate the university portals and websites of BITS Pilani Dubai Campus into a single, accessible platform. Users will be able to easily navigate and find the information they need from various portals embedded in the application. | ||
|
||
### 2. Features | ||
* **Landing Page:** | ||
* Simple and intuitive interface (as provided in the image) | ||
* A dashboard page with all the embedded portals | ||
* An attendance tracker page which allows students to track their attendance for a their courses, students will have to login using their GMAIL ID | ||
* **User Authentication:** | ||
* Optional user registration and login features | ||
* Allow users to create profiles and save preferences | ||
* **Mobile Responsiveness:** | ||
* The application should be fully responsive and accessible on various devices, including smartphones and tablets | ||
* **Website Link:** | ||
{ title: 'BITS ERP', url: 'https://erp.bits-pilani.ac.in/', description: 'The main website for registration, academic progress, and grading' }, | ||
{ title: 'LMS', url: 'https://lms.bitspilanidubai.ae/', description: 'A website for coursework management, assessments, and coursework resources' }, | ||
{ title: 'Uni Notes', url: 'https://uni-notes.netlify.app/', description: 'Find information across courses and their respective notes, contributed by individual students' }, | ||
{ title: 'Google DSC Resources', url: 'https://gdscbpdc.github.io/', description: 'Find information of technical workshops and events conducted by Google DSC BPDC' }, | ||
{ title: 'ACM lib Resources', url: 'https://openlib-cs.acmbpdc.org/', description: 'A library of resources provided by ACM BPDC' }, | ||
|
||
### 3. Technology Stack | ||
* **Frontend:** | ||
* Tailwind CSS for styling | ||
* NextJs | ||
|
||
### 4. Design and User Experience | ||
* Adhere to the provided landing page design or create a new design that aligns with the application's purpose | ||
* Ensure a user-friendly and intuitive interface | ||
* Prioritize accessibility and inclusivity in the design | ||
* Optimize for performance and load times | ||
|
||
### 5. Development and Deployment | ||
* Follow a structured development methodology (e.g., Agile) | ||
* Implement version control (e.g., Git) | ||
* Conduct thorough testing (unit, integration, and end-to-end) | ||
* Deploy the application to a suitable hosting environment | ||
|
||
### 6. Maintenance and Updates | ||
* Establish a maintenance plan for regular updates and bug fixes | ||
* Monitor user feedback and implement necessary improvements | ||
* Consider future features and enhancements to expand the application's capabilities | ||
|
||
### 7. File Structure | ||
MY-APP | ||
├── next | ||
├── node_modules | ||
├── public | ||
├── requirements | ||
├── src | ||
│ └── app | ||
│ ├── favicon.ico | ||
│ ├── globals.css | ||
│ ├── layout.tsx | ||
│ ├── page.tsx | ||
│ └── components | ||
│ ├── magicui | ||
│ │ └── dot-pattern.tsx | ||
│ └── ui | ||
│ ├── About.tsx | ||
│ ├── AttendanceTracker.tsx | ||
│ ├── Dashboard.tsx | ||
│ └── HomePage.tsx | ||
├── lib | ||
├── bits.png | ||
├── .eslintrc.json | ||
├── .gitignore | ||
├── components.json | ||
├── next-env.d.ts | ||
├── next.config.mjs | ||
├── package-lock.json | ||
├── package.json | ||
├── postcss.config.mjs | ||
├── README.md | ||
├── tailwind.config.ts | ||
└── tsconfig.json | ||
|
||
**Note:** This is a basic requirements document. The specific implementation details may vary depending on the complexity of the project and the chosen technologies. It's important to refine and expand these requirements as the project progresses. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
'use client' | ||
|
||
import { useState } from 'react' | ||
import LandingPage from './ui/LandingPage' | ||
import Dashboard from './ui/Dashboard' | ||
import AttendanceTracker from './ui/AttendanceTracker' | ||
|
||
const MainContent = () => { | ||
const [currentPage, setCurrentPage] = useState('landing') | ||
|
||
const handleEnter = () => { | ||
setCurrentPage('dashboard') | ||
} | ||
|
||
const handleAttendanceClick = () => { | ||
setCurrentPage('attendance') | ||
} | ||
|
||
const handleLogout = () => { | ||
setCurrentPage('landing') | ||
} | ||
|
||
const renderNavigation = () => ( | ||
<nav className="bg-blue-600 p-4"> | ||
<div className="max-w-7xl mx-auto flex justify-between items-center"> | ||
<h1 className="text-2xl font-bold text-white">Unidash</h1> | ||
<div> | ||
<button onClick={() => setCurrentPage('dashboard')} className="text-white mr-4">Dashboard</button> | ||
<button onClick={() => setCurrentPage('attendance')} className="text-white">Attendance</button> | ||
</div> | ||
</div> | ||
</nav> | ||
) | ||
|
||
return ( | ||
<> | ||
{currentPage === 'landing' && <LandingPage onEnter={handleEnter} />} | ||
{currentPage !== 'landing' && ( | ||
<> | ||
{renderNavigation()} | ||
{currentPage === 'dashboard' && ( | ||
<Dashboard | ||
onAttendanceClick={handleAttendanceClick} | ||
onLogout={handleLogout} | ||
/> | ||
)} | ||
{currentPage === 'attendance' && <AttendanceTracker />} | ||
</> | ||
)} | ||
</> | ||
) | ||
} | ||
|
||
export default MainContent |
Oops, something went wrong.