This Family Engagement portal was made possible thanks to Yes Prep Public Schools and Student1.
The Family Engagement Engagement Portal provides an easy-to-use view of student information, attendance, discipline, grades, and assessment scores with links to parent views in other applications. The Portal enables communication between members of the student’s “success team” by supporting text communications with automatic language translation.
URL: https://familyportal.nearshoredevs.com/
Credentials:
Parent:
Email: perry.savage@toolwise.onmicrosoft.com
Password: Parent123
Teacher:
Email: alexander.kim@toolwise.onmicrosoft.com
Password: Teacher123
Student:
Email: chadwick.garner@toolwise.onmicrosoft.com
Password: 4rfv.%TGB
Principal:
Email: fred.lloyd@toolwise.onmicrosoft.com
Password: Teacher123
Admin
Email: trent.newton@toolwise.onmicrosoft.com
Password: 5tgb.^YHN
We tried to make the setup and deploy of this web application as easy as possible.
-
Install Visual Studio Community Edition (https://visualstudio.microsoft.com/downloads/)
-
Select datastore (Sql/Postgres)
- If using Sql:
- Install MsSQL Developer Edition (https://www.microsoft.com/en-us/sql-server/sql-server-downloads)
- Install SQL Server Management Studio (https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms)
- Download and restore Ed-Fi ODS s3v5.1.0 database from here: https://www.myget.org/F/ed-fi/api/v2/package/EdFi.Suite3.Ods.Populated.Template/5.1.0
- If using Postgres:
- Install NugetCli and add it to the path environment variables
- Install PostgreSql (https://www.postgresql.org/download/)
- Install any Postgresql management tool, we used the following one (https://www.pgadmin.org/)
- Download and restore Ed-Fi ODS v5.3.91 Database using the nuget cli, running this command:
- nuget install EdFi.Suite3.Ods.Populated.Template.PostgreSQL -source https://pkgs.dev.azure.com/ed-fi-alliance/Ed-Fi-Alliance-OSS/_packaging/EdFi/nuget/v3/index.json -version 5.3.91
- If using Sql:
-
Download the code (https://github.com/Ed-Fi-Exchange-OSS/Family-Engagement-Portal)
-
Open code with Visual Studio Community Edition
-
Go to the Web.config file inside the project root folder "~/Student1.ParentPortal.Web" and choose your database provider (Sql/Postgres)
- If using Sql: Open SQL Server Management Studio and run the following scripts in the order that they are listed to configure the Database.
- Scripts are located at the following location "~/Student1.ParentPortal.Data/Scripts/edFi31/SQLServer/" * 1CreateParentPortalSupportingDatabaseSchema.sql * 2ODSExtensions.sql * 3StudentDetails.sql * 4SampleDataDemo.sql (For Demo Only)
- If using Postgres: Open pgAdmin or Psql and run the following scripts in the order that they are listed to configure the Database.
- Scripts are located at the following location "~/Student1.ParentPortal.Data/Scripts/edFi31/PostgreSQL/" * 1CreateParentPortalSupportingDatabaseSchema-PostgreSQL.sql * 2ODSExtensions-PostgreSQL.sql * 3StudentDetails-PostgreSQL.sql * 4SampleDataDemo-PostgreSQL.sql (For Demo Only)
- If using Sql: Open SQL Server Management Studio and run the following scripts in the order that they are listed to configure the Database.
-
Compile project and Run it.
Before you begin make sure you have gone through all the Prerequisites listed above.
To run the Family Engagement Portal we still need to execute some application specific scripts.
You are now ready to run the application. Go back to Visual Studio Community Edition and press F5.
Ensure that your application is running on: http://localhost/Student1.ParentPortal.Web/
For Azure Ad testing use: Credentials:
Parent:
Email: perry.savage@toolwise.onmicrosoft.com
Password: Parent123
Teacher:
Email: alexander.kim@toolwise.onmicrosoft.com
Password: Teacher123
Student:
Email: chadwick.garner@toolwise.onmicrosoft.com
Password: 4rfv.%TGB
Principal:
Email: fred.lloyd@toolwise.onmicrosoft.com
Password: Teacher123
Teacher Admin
Email: trent.newton@toolwise.onmicrosoft.com
Password: 5tgb.^YHN
As mentioned before the main goal of this application was to make it as simple as possible to standup and deploy.
For a successfull production implementation we recommend the following:
- A server to host the application. (Any of the options below)
- Phisical Server
- Virtual Machine
- Cloud hosted VM
- Azure AppService
- A custom domain to access the application. We recommend something like https://familyportal.mydistrict.org or https://learnerprofile.mydistrict.org. The "mydistrict.org" portion of the domain should be your district's domain.
- A SSL certificate. Most likely your district already has a star certificate. This kind of certificates can be installed on any subdomain for your district. For example. *.mydistrict.org which would work for familyportal.mydistrict.org
- Choose an Identity provider. As of when this was written the Family Engagement Portal \ Learner Profile application can use Azure AD B2B, B2C and google.
- A storage for staff and student images. The following image storages are supported:
- Local storage (A folder on the server.)
- Azure Blob Storage
- An email provider to be able to send alerts and communication to the student's parents. There are many smtp providers out there that you can use.
- Local SMTP
- Sendgrid
- Mailgun
- An SMS provider to be able to send text messages to any of the users of the application. We have tested it with https://www.twilio.org/
- If you want to enable translations in the application you will have to create an account in Azure Cognitive services and provide the parametrs in the web.config. Alternatively you could develop a provider for google or AWS translation services.
- The live chat is powered by SignalR and can run natively on a server. If you have more than 8k students we recommend you use the Azure cloud scalable version.
- If you are implementing mobile phone push notifications then you will have to create an account for the google Firebase Cloud Messaging service.
The main things needed to change for this application to run in production are:
- Authentication parameters for AzureAd:
- In file app.config.js
- instance: 'https://login.microsoftonline.com/',
- tenant: '[Enter your tenant name here e.g. contoso.onmicrosoft.com]',
- clientId: '[Enter your clientId here e.g. e9a5a8b6-8af7-4719-9821-0deef255f68e]',
- In file Web.config -> AppSettings keys:
- authentication.azure.tenant value = "[Enter your tenant name here e.g. contoso.onmicrosoft.com]"
- authentication.azure.audience value = "[Enter your clientId here e.g. e9a5a8b6-8af7-4719-9821-0deef255f68e]"
- In file app.config.js
- Database Connection string located in the Web.config file.
- For alerts and emails update:
- feedback.emails to contain the email that should receive the messages.
- messaging.email.defaultFromEmail set to the email that will appear in the from field.
- messaging.email.server set to your email provider server
- messaging.email.user set to the user to send emails
- messaging.email.pass set to the password to be able to send emails
- For translation services:
- translation.Name set to the user or name of the service used
- translation.Key set to the key provided by the service
- If using Azure Blob Storage for images set the azure.storage.connectionString.
- If using Azure Scalable SignalR update the Azure:SignalR:ConnectionString
Copyright (c) 2019 Ed-Fi Alliance, LLC and contributors.
Licensed under the Apache License, Version 2.0 (the "License").
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
See NOTICES for additional copyright and license notifications.