Giter Club home page Giter Club logo

enchanted-oasis's Introduction

Live Demo

output.mp4

You can login with the following credentials

Admin:

Email: [email protected]
Password: admin888

Faculty:

Email: [email protected]
Password: faculty888

Student:

Email: [email protected]
Password: student888

Link:

๐Ÿ”ด https://enchanted-oasis.vercel.app

Screenshots

Alt text Alt text Alt text Alt text Alt text

Hogwarts School portal

Hogwarts faces a noticeable absence of a dedicated online portal that allows students to immerse themselves in the magical experience fully. As a result, there is a pressing need for participants to create a website that serves as a comprehensive gateway to Hogwarts.๐Ÿฐ๐Ÿง™โ€โ™‚๏ธ. This Web site will be a one-stop-shop for all things Hogwarts, including course registration, house points, and announcements.

Basic Features

  • Admin, Student, and Faculty Authorization.
  • Admin should be able to add/update/delete courses, faculties, and students.
  • House points tracking system,
  • Announcements to students and faculties.

Student Features

  • User profiles with house affiliations.
  • Being able to register/drop or view a course.
  • Access to course material
  • Notifications for upcoming events and examinations.

Faculty Features

  • Being able to view/add/delete students
  • Notifications for upcoming events and examinations.

Tech Stack

  • Frontend: NextJS (ReactJS) + ChakraUI
  • Backend: Vercel serverless functions + MongoDB Atlas

Developing

Clone the repository

git clone https://github.com/JeelRajodiya/Enchanted-Oasis.git

Install dependencies

npm install

Run the development server

npm run dev

enchanted-oasis's People

Contributors

jeelrajodiya avatar codesmith28 avatar

Stargazers

jist avatar David Jacoby avatar  avatar  avatar Saumya Shah avatar

Watchers

 avatar  avatar

enchanted-oasis's Issues

Create admin notifications api

Admin Notifications

Route Name Method URL Pattern
List Notifications GET /api/notification
Add Notification POST /api/notification
Remove Notification DELETE /api/notification/{notificationId}
Edit Notification PUT /api/notification/{notificationId}
Get Notification GET /api/notification/{notificationId}
Get Views GET /api/notification/{notificationId}/views
Get Viewers GET /api/notification/{notificationId}/listViewers
Get Number of unseen notifications GET /api/notification/unseen
mark as seen PATCH /api/notification/{notificationId}/seen

Speedup user creation for admin

separate first name, last name. add auto profilePic, email, password, house allocation

  • The roll number should be generated automatically; faculties and admin will have NA as their roll number
    password is the same as roll no, but when the student first signs in they will be prompted to change it

Implement Get Notification route

Route Details:

  • Method: GET
  • URL Pattern: /api/notification/{notificationId}

Tasks:

  • Implement the Get Notification route.
  • Add appropriate handlers and controllers.
  • Test the route using sample data.
  • Ensure proper error handling.

add functionality to edit self profile

show My profile menu in this menu bar

image

  • when clicked it will redirect to a page "my profile"

  • it will be located in pages/Auth/Profile.tsx

  • if the user is admin they can change their user name as well

  • otherwise they can only change profile pic and phone

  • other fields such as the house, email will be shown but they will be in a disabled input

#use the below API to get the user info

Get User

  • URL: /api/user
  • Method: GET
  • Permissions: Admin | Student | Faculty

Response

{
	name: string,
	role: "Student" | "Faculty" | "Admin",
	email: string,
	house: string,
	profilePicture: string,
	phone: string,
	rollNumber: string,


}

Make Houses API Route available

Route Name Method URL Pattern status
See My House Data GET /api/house/my [ x ]
List Houses GET /api/house/list [ x ]
List Members GET /api/house/{id}/listMembers [ x ]
Add Member POST /api/house/{id}/member [ ]
Remove Member DELETE /api/house/{id}/member/{memberId} [ ]
Increase pts POST /api/house/{id}/increase [ x ]
Decrease pts POST /api/house/{id}/decrease [ x ]
Edit House PUT /api/house/{id} [ x ]
Delete House DELETE /api/house/{id} [ x ]
Create house POST /api/house [ x ]

Create House Page

  • show house points
  • list all house members and search them ( use the component we created in the new user portal)
  • increase/decrease or edit points of the house

Implement mark as seen route

Route Details:

  • Method: PATCH
  • URL Pattern: /api/notification/{notificationId}/seen

Tasks:

  • Implement the mark as seen route.
  • Add appropriate handlers and controllers.
  • Test the route using sample data.
  • Ensure proper error handling.

Better Landing page

improve the landing page and signup
possible upgrades:

parallax effect
joining the landing page with signup page vertically as they share the same background
replace the static background with a gif of hogwarts

Implement Get Number of unseen notifications route

Route Details:

  • Method: GET
  • URL Pattern: /api/notification/unseen

Tasks:

  • Implement the Get Number of unseen notifications route.
  • Add appropriate handlers and controllers.
  • Test the route using sample data.
  • Ensure proper error handling.

User Routes

Route Name Method URL Pattern Status
Update Details PUT /api/user [ x ]
Delete User DELETE /api/user [ x ]
Get User GET /api/user [ x ]
Create User POST /api/user [ x ]
Update password PUT /api/user/password [ x ]
list Users GET /api/allUser/list [ x ]
Search Users GET /api/allUser/search [ x ]

Implement List Notifications route

Route Details:

  • Method: GET
  • URL Pattern: /api/notification

Tasks:

  • Implement the List Notifications route.
  • Add appropriate handlers and controllers.
  • Test the route using sample data.
  • Ensure proper error handling.

customize the labels

  • add different colors for different labels

  • green for faculty
    image

  • keep blue - student, red- admin colors
    image

  • style labels

Implement Get Viewers route

Route Details:

  • Method: GET
  • URL Pattern: /api/notification/{notificationId}/listViewers

Tasks:

  • Implement the Get Viewers route.
  • Add appropriate handlers and controllers.
  • Test the route using sample data.
  • Ensure proper error handling.

Implement Get Views route

Route Details:

  • Method: GET
  • URL Pattern: /api/notification/{notificationId}/views

Tasks:

  • Implement the Get Views route.
  • Add appropriate handlers and controllers.
  • Test the route using sample data.
  • Ensure proper error handling.

Implement Remove Notification route

Route Details:

  • Method: DELETE
  • URL Pattern: /api/notification/{notificationId}

Tasks:

  • Implement the Remove Notification route.
  • Add appropriate handlers and controllers.
  • Test the route using sample data.
  • Ensure proper error handling.

Implement Edit Notification route

Route Details:

  • Method: PUT
  • URL Pattern: /api/notification/{notificationId}

Tasks:

  • Implement the Edit Notification route.
  • Add appropriate handlers and controllers.
  • Test the route using sample data.
  • Ensure proper error handling.

Implement Add Notification route

Route Details:

  • Method: POST
  • URL Pattern: /api/notification

Tasks:

  • Implement the Add Notification route.
  • Add appropriate handlers and controllers.
  • Test the route using sample data.
  • Ensure proper error handling.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.