Giter Club home page Giter Club logo

full-teaching's Introduction

FullTeaching

Build Status


WARNING: the updated version of this repo is now here OpenVidu/full-teaching


What is FullTeaching?

FullTeaching is an educational web application to make online classes easy for teachers as well as students. Its current main features are the following:

  • Teachers can create all the courses they want and easily invite their students. Every user will see their courses and sessions well ordered on their dashboards.

  • Teachers can stablish an unlimited number of classes for each course, indicating the content and date for each one of them.

  • A calendar view is provided in order to check all your classes at a glance.

  • Every course has a forum where the users can open entries, write comments and reply others so they can share doubts and knowledge.

  • Teachers have an advanced system for attaching files to a course. They can customize groups of files, name them as they want and reorder them at any moment. The uploading process has been greatly simplified.

Dashboard: all your courses and your calendar

Calendar: here you have all your sessions, with direct access to their specific course

Classes: ordered by date, teachers can easily add new ones and modify existing ones

Forum: unlimited entries for posting all your questions

Files: advanced tree structure to keep all the course's files clear and tidy

Adding students to the course is as simple as pasting their emails. FullTeaching will automatically do the rest

Quick start guide

How to execute a demo FullTeaching service (Docker)

To get FullTeaching working in the easiest way, you just have to download the file above docker-compose.yml and run docker-compose up in its directory. This will pull all the necessary images from DockerHub and will execute everything (it will take one minute after the pull ends). Go to http://localhost:5000/ and there you have it!

You will need some user data to test the features. These are the default users for the demo:

How to develop FullTeaching

To get a full development version of the app just execute the following commands:

Prerequisites

  • Java 8

    Check version:

    $ java -version
    

    Install:

    $ sudo add-apt-repository ppa:webupd8team/java
    $ sudo apt-get update
    $ sudo apt-get install oracle-java8-installer
    
  • Angular-cli ( which requires Node.js > 4.x.x and npm > 3.x.x )

    Check versions:

    $ node -v
    $ npm -v
    $ ng --version
    

    Install:

    $ sudo apt-get install nodejs
    $ sudo apt-get install npm
    $ npm install -g angular-cli
    
  • Maven

    Check version:

    $ mvn -v
    

    Install:

    $ sudo apt-get install maven
    
  • MySQL

    Check version:

    $ mysql --version
    

    Install:

    $ sudo apt-get update
    $ sudo apt-get install mysql-server
    $ sudo mysql_secure_installation
    

Installation and execution

First of all, it is necessary to create a schema for MySQL:

    $ mysql -u root -p
    $ CREATE DATABASE full_teaching;
    $ exit

Then we can build and run the project:

    $ git clone https://github.com/pabloFuente/full-teaching.git
    $ cd ./full-teaching/angular-cli-project/
    $ npm install
    $ cd ../
    $ ./BuildFrontJarAndRun.sh

This clones the project in your working directory, installs dependencies with npm install and executes the BuildFrontJarAndRun.sh script.

The script BuildFrontJarAndRun.sh builds the FrontEnd with angular-cli, copies all generated files to the Backend static folder, builds and generates the jar with maven and runs the jar file.

Go to http://localhost:5000/ and there you have it! Every time you modify the Front or Back, you can just execute BuildFrontJarAndRun.sh and all the changes will be applied.

โ— IMPORTANT:

  • Before executing the script to build and run the app, it is necessary to change the following properties of application.properties file to match your credentials for MySQL:

    spring.datasource.username=YOUR_USERNAME
    spring.datasource.password=YOUR_PASS
    
  • You may have to change permissions in order to execute the scripts.

These instructions have been tested for Ubuntu 14.04

full-teaching's People

Contributors

gtunon avatar pablofuente avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

full-teaching's Issues

build error

As a forewarning, we are moving the CLI npm package to "@angular/cli" with the next release, which will only support Node 6.9 and greater. This package will be officially deprecated shortly after. To disable this warning use "ng set --global warnings.packageDeprecation=false". You have to be inside an angular-cli project in order to use the build command.

Karma fails test: Materialize directives can't be bound.

This must be an import problem (MaterializeDirectives are not being recognized). For example, navbar.component.spec.ts fails because Karma cannot recognize [materializeParams] directive:
<a *ngIf="this.authenticationService.isLoggedIn()" class="button-collapse" materialize="sideNav" data-activates="nav-mobile" [materializeParams]="[{closeOnClick: true}]"><i class="material-icons">menu</i></a>

Log after running ng test:
Chrome 53.0.2785 (Linux 0.0.0) login-modal component without overriding should have Welcome Title FAILED Can't bind to 'materializeActions' since it isn't a known property of 'div'. ("<div id="modal" class="modal" materialize [ERROR ->][materializeActions]="actions"> <div class="modal-content"> "): LoginModalComponent@0:42

I have tried multiple approaches, changing how things are imported or modifying karma.conf, but nothing seems to work for now.

Teacher must be capable of adding students to a course in a simple fast way

A good starting point could be letting the teacher upload a file with all student e-mails, and the app would automatically assign each student to the selected course (if registered)
Maybe 3 options:

  • A single text input for adding one student at a time
  • A text area for adding multiple students at a time, with an option for add a custom separator between emails (by default blank space or new line. Regex allowed?!?)
  • An option for uploading a text file containing all emails. The separator could be ok here too.

Problems with conection:Undefined

Hi, i've having problems with the connection between fullteaching and the openvidu server. I've tried with several configurations(i.e. accepting the SSL certificate of the server in the URL:4443, deploying the non contenerized version,using different browsers with different versions) and in different enviroments(HyperV Ubuntu 18, Ubuntu 16 , windows 10 , Ubuntu into a bare metal machine) having the same output:
imagen

I am not sure what is happening due to a month ago i remember that the video streaming work, and now that i am performing several tests over the video session y can not do it.

Many Thanks
Cristian

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.