Skip to content

mrrobotisreal/AspireToExpandTeacherDesktop

Repository files navigation

Aspire to Expand desktop app (Teacher version)

An educational platform for teachers who want a trustworthy and well built desktop application for teaching their students. 👩‍🏫👨‍🏫💻📚

Overview

This app provides teachers with the ability manage existing and new student data, securely accept payment for classes via Stripe and Paypal, chat via instant messaging, create and share documents via Google Drive/Docs and S3, use tools such as Google Translate and ChatGPT, conduct one-on-one classes with video/audio/screen sharing capabilities and fullscreen view (NOTE: support for up to 4 participants, i.e. 1 teacher and 3 students is currently being built), sending push notifications to individual students or to multiple students via student segments (i.e. send notifications to all students of a certain level, or to all students in a particular timezone, etc.) configure games for students, and more.

Table of Contents

Contact info

Developed by: Mitchell Wintrow

Email: [email protected], [email protected]

Features

  • 🔒 Secure user authentication and authorization, as well as Google SSO
  • 💳 Secure payment and PCI DSS compliance via Stripe and Paypal for classes (Under development)
  • 🌍 Multi-language support (Currently supports Ukrainian, Russian, and German. Support is being developed for Spanish, French, Hebrew, Arabic, Chinese, Japanese, Portugeuse, Vietnamese, and Korean. Please reach out for support with any languages not mentioned and we'll see what we can do for you!)
  • 🎥 Encrypted video conferencing and screen sharing with up to 4 partipants via WebRTC
  • 💬 Instant messaging with students via WebSockets
  • 🗂️ Integration with S3 (AWS) (Under development)
  • 📂 Integration with Google Drive/Docs (Under development)
  • ㊙️ Integration with Google Translate (Under development)
  • 🤖 Integration with ChatGPT (Under development)
  • 🎮 Gamification for students
  • 🧍‍♂️🧍‍♀️ Student segmentation (Under development)
  • 🔔 Push notifications (Under development)

Demo

gifDemo

Old Demo Below: Added to showcase Video calling

oldGifDemo

More demos will be added over time...

Installation for development

For Mac/Linux

# Step 1: Clone the repo
git clone https://github.com/mrrobotisreal/AspireToExpandTeacherDesktop.git

# Step 2: Enter project directory and install dependencies
cd AspireToExpandTeacherDesktop
npm install

# Step 3: Create required environment variables
export MAIN_SERVER_URL=<your-instance-hosting-AspireToExpandServer>
export WS_VIDEO_SERVER_URL=<your-instance-hosting-AspireToExpandClassroomServer>
export WS_CHAT_SERVER_URL=<your-instance-hosting-AspireToExpandChatServer>
export HTTP_CHAT_SERVER_URL=<your-instance-hosting-AspireToExpandChatServer>
export SALT=<your-preferred-salt>
export GOOGLE_CLIENT_ID=<your-google-app-client-id>
export GOOGLE_CLIENT_SECRET=<your-google-app-client-secret>
export STRIPE_SECRET_KEY=<your-stripe-secret-key>
export STRIPE_PUBLISHABLE_KEY=<your-stripe-publishable-key>

# Step 4: Run webpack dev server in one terminal
export NODE_ENV="development"
npm run react-dev

# Step 5: Start the app in another terminal
export NODE_ENV="development"
npm run start-node

For Windows (Powershell)

# Step 1: Clone the repo
git clone https://github.com/mrrobotisreal/AspireToExpandTeacherDesktop.git

# Step 2: Enter project directory and install dependencies
cd AspireToExpandTeacherDesktop
npm install

# Step 3: Create required environment variables
$Env:MAIN_SERVER_URL = <your-instance-hosting-AspireToExpandServer>
$Env:WS_VIDEO_SERVER_URL = <your-instance-hosting-AspireToExpandClassroomServer>
$Env:WS_CHAT_SERVER_URL = <your-instance-hosting-AspireToExpandChatServer>
$Env:HTTP_CHAT_SERVER_URL = <your-instance-hosting-AspireToExpandChatServer>
$Env:SALT = <your-preferred-salt>
$Env:GOOGLE_CLIENT_ID = <your-google-app-client-id>
$Env:GOOGLE_CLIENT_SECRET = <your-google-app-client-secret>
$Env:STRIPE_SECRET_KEY = <your-stripe-secret-key>
$Env:STRIPE_PUBLISHABLE_KEY = <your-stripe-publishable-key>

# Step 4: Run webpack dev server in one terminal
$Env:NODE_ENV = "development"
npm run react-dev

# Step 5: Start the app in another terminal
$Env:NODE_ENV = "development"
npm run wstart-node

For Windows (Command Line)

rem Step 1: Clone the repo
git clone https://github.com/mrrobotisreal/AspireToExpandTeacherDesktop.git

rem Step 2: Enter project directory and install dependencies
cd AspireToExpandTeacherDesktop
npm install

rem Step 3: Create required environment variables
set MAIN_SERVER_URL=<your-instance-hosting-AspireToExpandServer>
set WS_VIDEO_SERVER_URL=<your-instance-hosting-AspireToExpandClassroomServer>
set WS_CHAT_SERVER_URL=<your-instance-hosting-AspireToExpandChatServer>
set HTTP_CHAT_SERVER_URL=<your-instance-hosting-AspireToExpandChatServer>
set SALT=<your-preferred-salt>
set GOOGLE_CLIENT_ID=<your-google-app-client-id>
set GOOGLE_CLIENT_SECRET=<your-google-app-client-secret>
set STRIPE_SECRET_KEY=<your-stripe-secret-key>
set STRIPE_PUBLISHABLE_KEY=<your-stripe-publishable-key>

# Step 4: Run webpack dev server in one terminal
set NODE_ENV="development"
npm run react-dev

# Step 5: Start the app in another terminal
set NODE_ENV="development"
npm run wstart-node

NOTE: There is an issue with Webpack 5 and bcryptjs. Currently the only way to fix this issue is by manually going into node_modules/bcryptjs/package.json and change "browser" from this:

"browser": "dist/bcrypt.js"

To this:

"browser": {
  "bin": "dist/bcrypt.js",
  "crypto": false
}

This isn't an issue for the finalized app because I'll be building a cross-platform binary with Electron, but for development purposes I felt it was important to include this fix mentioned above.

Download production app

A download link to the finalized production app version will be posted here...

Usage

NOTE: In order to first log in to this app, you must manually insert a teacher account into the MongoDB database on your instance of the AspireToExpandServer with the following properties:

db.students.insertOne({
  "teacherID":"<your-desired-teacher-id>",
  "emailaddress":"<your-email-address>",
  "password":"<your-password>"
})

Technologies

Electron TypeScript NodeJS React React Router MongoDB Chart.js Stripe PayPal AWS Google Translate Google Drive ChatGPT Git macOS Pop!_OS Ubuntu Windows npm Neovim Visual Studio Code

WinApps Solutions LLC Mitchell Wintrow

Mitchell Wintrow Profile Pic

License

This project is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

  • You can view and share this code for non-commercial purposes as long as proper credit is given.
  • Forking, modifications, or derivative works are not allowed.

For the full license text, visit Creative Commons License.


This product is developed and owned by WinApps (Mitchell Wintrow) ©2024

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages