• Stars
    star
    184
  • Rank 209,187 (Top 5 %)
  • Language
    HTML
  • Created over 5 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Angular 11.0 Firebase App - Online School , Student Management App
- If you like this project, please consider giving it a star (*) and follow me at GitHub & YouTube.

Online School Management App

Please watch Video Tutorials for complete installation and code review!

This repository is updated to Angular 11.0.0

Please don't forget to upgrade your Angular CLI to V11 and update tsconfig.json as well.

Tools: 

front-end: Angular 11.0.0
back-end: Google Firestore / Firebase
Pro Version: AI, Machine Learning Algorithm supported Advance features

send an email to [email protected] for Pro version enquiries.

Objective

  1. Manage Small, Medium, Large Schools / Colleges online for free
  2. Role based Online App access for Student, Parents, Teacher and School Management
  3. Instant password/role reset for all users
  4. Complete Online School Management App for storing Students Records, Grades, Fee, Attendance, Staff and a lot more.
  5. Live School - Student/Parent Notifications (Marks, Fees, Online Homework posting etc)
  6. Paperless Online App based Education features
  7. Social Authentication
  8. Online and/or Offline (delayed capture) App
  9. One App for multiple platforms (iOS, Android, Desktop, Cloud etc.)
  10. Store and Access millions of records instantly
  11. Paperless and Mobile on-premise/private cloud App deployement
  12. Instant access to ALL historical records at anytime
  13. iOS/Android app (notification enabled) / Advance Custom features (Pro version only)
  14. Unlimited Storage (only limited to server/database hosting)

Let's get started :-

// Before we start, Please make sure you have latest version of node js installed.
// head out to https://nodejs.org/en/ and grab latest nodejs.
// Once you have nodejs installed, open command prompt/terminal window.

$ node -v // make sure, this command comes back with a node version
$ npm -v // make sure, this command comes back with a npm version

// How to Install NodeJS on Windows, Mac, Linux & ChromeOS
// First run
$ sudo apt-get update
// and then if needed
$ sudo apt-get install curl gnupg -y
// for nodejs version 14
$ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ sudo apt-get install -y nodejs

// Install Angular CLI
$ npm install -g @angular/cli
$ ng -v // make sure, this command comes back with a npm version
$ mkdir app
$ cd app
$ mkdir client
$ cd client
$ ng new SMA
$ cd SMS
$ ng serve

Setup Google Firestore / Firebase Database & Role / Rules

service cloud.firestore {
  match /databases/{database}/documents {
// SMS App Rules START
  match /SMS_ROLES/{document} {
   allow read, write: if false;
   }
   match /SMS_USERS/{document} {
	 allow create: if exists(/databases/$(database)/documents/SMS_ROLES/$(request.resource.data.secretKey))
   && get(/databases/$(database)/documents/SMS_ROLES/$(request.resource.data.secretKey)).data.role == request.resource.data.role;
   allow update: if exists(/databases/$(database)/documents/SMS_ROLES/$(request.resource.data.secretKey))
   && get(/databases/$(database)/documents/SMS_ROLES/$(request.resource.data.secretKey)).data.role == request.resource.data.role
   && isDocOwner();
   allow read: if isSignedIn() && isDocOwner();
   }
   match /SMS_CONFIG_ENROLL_CD/{document} {
   allow read, write, delete: if isSMSAdmin() || isSMSStaff() || isSMSTeacher();
   }
   match /SMS_CONFIG_FEE_CD/{document} {
   allow read, write, delete: if isSMSAdmin() || isSMSStaff() || isSMSTeacher();
   }
   match /SMS_CONFIG_MARKS_CD/{document} {
   allow read, write, delete: if isSMSAdmin() || isSMSStaff() || isSMSTeacher();
   }
   match /SMS_STUDENTS/{document} {
   allow read, write, delete: if isSMSAdmin() || isSMSStaff() || isSMSTeacher();
   }
   match /SMS_STUDENTS/{document}/notifications/{doc} {
   allow read: if isSignedIn();
   }
   match /SMS_FEE/{document} {
   allow read, write, delete: if isSMSAdmin() || isSMSStaff() || isSMSTeacher();
   }
   match /SMS_MARKS/{document} {
   allow read, write, delete: if isSMSAdmin() || isSMSStaff() || isSMSTeacher();
   }
   match /SMS_EMPLOYEE/{document} {
   allow read, write, delete: if isSMSAdmin() || isSMSStaff();
   }
   match /SMS_SALARY/{document} {
   allow read, write, delete: if isSMSAdmin() || isSMSStaff();
   }
   match /SMS_SALARY_CD/{document} {
   allow read, write, delete: if isSMSAdmin() || isSMSStaff();
   }
   match /SMS_VOUCHER/{document} {
   allow read, write, delete: if isSMSAdmin() || isSMSStaff();
   }
   match /SMS_EXPENSES/{document} {
   allow read, write, delete: if isSMSAdmin() || isSMSStaff();
   }
   match /SMS_ASSIGNMENT/{document} {
   allow read, delete: if isSMSAdmin() || isSMSStaff() || isSMSTeacher();
   allow write: if true;
   }
   match /SMS_CLASSES/{document} {
   allow read, write, delete: if isSMSAdmin() || isSMSStaff() || isSMSTeacher();
   }
   match /SMS_HOMEWORK/{document} {
   allow read, write, delete: if isSMSAdmin() || isSMSStaff() || isSMSTeacher();
   }
   match /SMS_TUTORIALS/{document} {
   allow read, write, delete: if isSMSAdmin() || isSMSStaff() || isSMSTeacher();
   }
   function isSMSAdmin() {
    return get(/databases/$(database)/documents/SMS_USERS/$(request.auth.uid)).data.role == 'admin';
    }
    function isSMSStaff() {
    return get(/databases/$(database)/documents/SMS_USERS/$(request.auth.uid)).data.role == 'staff';
    }
    function isSMSParent() {
    return get(/databases/$(database)/documents/SMS_USERS/$(request.auth.uid)).data.role == 'parent';
    }
    function isSMSTeacher() {
    return get(/databases/$(database)/documents/SMS_USERS/$(request.auth.uid)).data.role == 'teacher';
    }
    function isSMSStudent() {
    return get(/databases/$(database)/documents/SMS_USERS/$(request.auth.uid)).data.role == 'student';
    }
    function isDocOwner(){
    // assuming document has a field author which is uid
    // Only the authenticated user who authored the document can read or write
    	return request.auth.uid == resource.data.author;
      // This above read query will fail
    // The query fails even if the current user actually is the author of every story document.
    //  The reason for this behavior is that when Cloud Firestore applies your security rules, 
    //  it evaluates the query against its potential result set,
    //   not against the actual properties of documents in your database. 
    //   If a query could potentially include documents that violate your security rules, 
    //   the query will fail.
    //   on your client app, make sure to include following
    //   .where("author", "==", this.afAuth.auth.currentUser.uid)
    }
    function isSignedIn() {
    // check if user is signed in
          return request.auth.uid != null;
    }
  // SMS App Rules END
}
}

More Repositories

1

Employee-Payroll-Salary-App-Angular-11-MEAN-Stack

Employee Payroll, Salary App in Angular 11.0 MEAN Stack, GraphQL
HTML
131
star
2

Online-Shop-eCommerce-App-Angular-6-Firebase

Online eCommerce Store app in Angular 11.0 & Firebase
HTML
100
star
3

Healthcare-Management-App-Flutter_Firebase

Complete Healthcare Management (Patient, OPD, IPD, Rx, Lab) Flutter Firebase App for iOS, Android, Web & Desktop
Dart
89
star
4

ERP-Apps-CRM-Cloud-Angular_Firebase

ERP Apps - CRM Cloud Angular 11 and Google FireStore database, Role based security
HTML
68
star
5

RPA

AI Bots - Robotic Processing automation Python and Julia lang scripts to support automating repetitive tasks
Jupyter Notebook
64
star
6

GPS-Mobile-Tracking-App

Angular 9.0 HTML Bootstrap NodeJS and MYSQL App - Store GPS Mobile Browser Location
TypeScript
44
star
7

Visitor-Management-App

Angular 13 MEAN App - An Electronic Visitor register App for storing Host & Guest Records
TypeScript
41
star
8

Flutter-MYSQL-CRM-app

Flutter MYSQL CRM app - Free download with complete source code for iOS, Android, web
Dart
38
star
9

Flutter-for-Beginners

A Restaurant Management App for Web, iOS and Android
Dart
32
star
10

Angular-Cordova-Google-PlayStore-Publish

How to publish Angular app to Google Play Store using Cordova
26
star
11

Mobile-Picture-GPS-Tracking-Attendance-APP

Angular 7, Firebase - A Mobile GPS, Picture Attendance App for storing Employee, Asset Picture Attendance with GPS Locations.
TypeScript
19
star
12

Mojo

The Mojo Programming Language book
TeX
14
star
13

GraphQL-Middleware-JWTAUTH-Authorization

A Complete Code for JWT Authentication/Role Based Authorization in GraphQL
HTML
12
star
14

GeneralLedger.jl

ML for GL - A complete Julialang ERP Data Science framework for Finance, Supply chain accounting
Julia
12
star
15

Ionic-Capacitor-Angular-PWA-iOS-AndroidApp

Angular Capacitor GCloud Firebase development environment setup
HTML
10
star
16

Pandemic-Contact-Tracing-App

Angular 12/Firebase - Electronic Visitor register App for storing Host & Guest Records, Picture Attendance with GPS Locations, Contacts tracing using user's mobile phone
HTML
9
star
17

MNJIC

Angular Material Data table and PHP MYSQL App
TypeScript
6
star
18

DEMO-Angular-6-Login-Auth

Complete Login Auth system in Angular 6.0
HTML
6
star
19

AmitXShukla.github.io

Amit Shukla Website
Jupyter Notebook
5
star
20

Covid-Vaccine-Distribution-Management-App

Flutter Firebase / Firestore COVID Vaccine Distribution Management App - free download with complete source code
Dart
5
star
21

eCommerce.ai

A Complete end to end framework with a live virtual AI assistant to thrive your in-store e-commerce.
Jupyter Notebook
4
star
22

HazardAhead.ai

A Graph AI which predicts Hazards ahead.
Jupyter Notebook
4
star
23

P2P.ai

a complete procure to pay supply chain operation data science AI framework - copyright content included
TypeScript
4
star
24

elish-education-portal-app

JavaScript
3
star
25

Angular-Material

Angular Material Setup and Static Website Demo
TypeScript
3
star
26

GenAI

GenAI apps
Jupyter Notebook
3
star
27

RxSCMAI

A Complete Supply chain, Procure to Pay Data Science Framework with Predictive Analytics
TypeScript
2
star
28

Rapyd

Complete solutions to create B2C Smart Ads | B2B Invoices with Tax Analytics AI powered by Rapyd
TypeScript
2
star
29

Rx-API-with-NLP-Prediction

Display active studies, featured Clinical Trial oppurtnities, drugs & medical encyclopedia from ClinicalTrials.gov, NLM, Medline, CDC API/database based on disease terms, drugs or medical terms.
TypeScript
2
star
30

LGWatch

An AI-powered live alert LG webOS app, which reads, understands with advance AI Reasoning capabilities and watch out for you.
Dart
1
star
31

GoogleCommunity

A Live AI Community Watch out running on Google Gemini, RAG, Flutter, Firebase and Google APIs
Dart
1
star
32

Employee-Payroll-MIddleware-TEMP

Temp Repo for deployment - Do NOT use
JavaScript
1
star
33

Angular-Cordova-GCloud-Firebase-Setup

Angular Cordova GCloud Firebase development environment setup
1
star
34

GitHub-Hello-World

GitHub Git Commands Git Desktop Installation and Commands
1
star
35

AmitXShukla

about me
1
star
36

SCM_Rx_Inventory_OLIVEai

Olive Loop to manage Supply Chain Rx Inventory system using Predictive Analytics AI
TypeScript
1
star
37

Delivery

Ride | Service | Delivery Management app made in Flutter, Parse, Back4App MongoDB framework
Dart
1
star
38

TaxAnalytics.jl

Tax Analytics Julia package provide a complete AI, Data Science, Analytics solution to support all data operations on all sort of Vendor, Use, Freight, Misc Tax Accruals
1
star
39

P2P.jl

Purchase to Pay Julia package provide a complete AI, Data Science, Analytics solution to support all data operations on all sort of Procurement / Purchase, Accounts Payable business processes
1
star