Skip to content

School website React/Nextjs + ASP.NET CORE + Node.js

Notifications You must be signed in to change notification settings

dashayaskova/school

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

School

School website React/Nextjs + ASP.NET CORE

Simple school app with microservice architecture, material design and Firebase authentification. 


Stack

  • React
  • Next.js
  • Material-UI
  • Material-table
  • Firebase auth
  • Express
  • ASP.NET Core
  • GraphQL

 

Application arhitecture

User tries to login

Login architecture


Admin opens page with users

Users page architecture


Admin adds user

Add user architecture


 

MVP


Two types of users:

  • teacher
  • admin

Admin can:

  • add user (teacher or another admin)
  • edit/remove user
  • give teachers access to their classes and subjects
  • add/edit/remove classes
  • get class students
  • add/edit/remove students to the common storage
  • add student to the certain class
  • add/edit/remove subjects to the certain class
  • add/edit/remove grades to the certain student
  • get auto-generated report card for the certain student

Teacher can:

  • get students of the classes, they have access to
  • add/edit students to the common storage
  • add/remove students to the classes, they have access to
  • add/edit/remove grades to the certain student
  • get auto-generated report card for the certain student

Screenshots

Login page

Login page

There is no sign up page, because admin adds users. 


Page with all users

Users page

In the table you can search by specific words and sort columns. 


Add user page

Add user page


Edit user page

Edit user page


Student storage page

Student storage page


Classes page

Classes page


Class students page

Class students page


Class subjects page

Class subjects page


Subject grades page

Subject grades page


Grade column modal

Grade column modal


Student report card

Student report card

 

Local development

Before running containers, in auth and nextjs-school directories you need to enter environment variables into .env files. List with all the neccessary variables you can find in .env.example files.


Run container with auth server

docker-compose up --build -d auth

Run container with Next.js server

docker-compose up --build -d nextjs

Run container with graphql server

docker-compose up --build -d graphql

Open localhost:3000