Giter Site home page Giter Site logo

quickstack's Introduction

Quick Stack

Introduction

Quick Stack is a new innovative online learning portal. It provides theoretical details about a topic and a set of instructions which can be executed by the user on a real, live environment. The environment can be as simple as consisting of one Linux server or can be as complex as consisting of multiple servers comprising of a database instance and a web server. As the user progresses in the lab assignment, he can take a backup of the environment and restore the backup if something goes wrong during his lab. The user can switch off their environments when they are not using it. At the end, the user is presented a bill, which is as per usage. Quick Stack is developed on Open Stack which is a cloud operating system. It is an open source platform which aims to create abstracted pools of compute, storage, and networking resources that can be used to create virtual machines on top of standard server hardware. The open source environment allows you to create a truly software defined data center. OpenStack has very robust role-based access controls. Access and resource utilization can be controlled at the level of users, roles, and projects. OpenStack is highly scalable and is supported by countless contributors and individuals from many organizations. Quick Stack is a PaaS and needed a platform like OpenStack which can be used to create and manage various types of servers. These servers can be of different operating systems, different operating system versions etc. OpenStack provides a rich REST API and CLI library which can be invoked by the UI program to instruct OpenStack platform to perform necessary action. For e.g. When we start a lab, we need to create an instance of the server. The UI will internally invoke create server REST API to create the server instance.

Technologies Used

  1. Quick Stack Project is built on top of OpenStack and uses both of its controlling interfaces: Rest API and Command Line Interface.
  2. OpenStack Ocata version is used in the project and is customized to be used in lab environment and so far, can only be run with one compute node.
  3. Server Side: Spring MVC, Java, OpenStack4j, Apache commons a. Spring 4 is used to develop the web application with AngularJS and HTML5 to render views and JAVA REST APIs with JAVA POJO as the controller and model. b. Restful APIs are developed to login, GET user data, POST user data. c. OpenStack4j is used as the OpenStack SDK for Java to provision and control the OpenStack system from backend.
  4. Client Side: HTML5, AngularJS, Bootstrap a. HTML5 along with Bootstrap to render application screens b. AngularJS is used to route across pages also, to invoke the backend REST APIs.
  5. Database: Mongo DB
  6. Build Tool: Maven a. Maven is used as the build tool and all the dependencies are provided in pom.xml.
  7. Web Server: Apache Tomcat 8.5 a. Apache Tomcat is used to run the Quick Stack application on local host.

Arhitecture Overview

Architecture Overview

quickstack's People

Contributors

shriaithal avatar ashwinisnv avatar anuradhaiyer avatar

Watchers

James Cloos avatar

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.