Giter Site home page Giter Site logo

guymorgenshtern / mini-surveymonkeysysc4806 Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 927 KB

Create, respond, and edit forms and visualise metrics. Built with Spring, MongoDB, and JQuery

Home Page: https://mini-surveymonkeysysc4806.azurewebsites.net/

JavaScript 36.70% Java 38.20% CSS 15.37% HTML 9.73%

mini-surveymonkeysysc4806's Introduction

Mini-SurveyMonkeySYSC4806

Java CI with Maven

Description

This project aims to implement a survey creation tool, empowering users to create and conduct surveys effortlessly. Leveraging NoSQL technology (MongoDB), Spring, and Java, this application offers a dynamic platform for surveyors to create surveys with different question types, including text, numeric range, and multiple-choice questions. Leveraging NoSQL specifically removes the need for having a predefined schema, allowing us to store forms where the structure of questions and responses vary from survey to survey along with adapting to changing survery requirements without altering the database structure.

Installation + Setup

Deployed Version:

Our current release is available for use and hosted using Microsoft Azure at:
https://mini-surveymonkeysysc4806.azurewebsites.net/

Alternatively, users can also run the application locally if they would like following the Local Setup Instructions (below).

Local Setup:

This project utilizes Java, Maven, and MongoDB Prerequisites: Before you begin, ensure you have met the following requirements:

  • Java 17 JDK
  • Apache Maven
  • MongoDB
  • IntelliJ IDEA
  • Terminal

Installing Java: This application uses Java 17. Although there are newer versions available, Java 17 is the latest stable version available on Azure where this applicaiton is deployed.

Installing MongoDB:

  1. Open your browser and download the MongoDB shell: https://www.mongodb.com/docs/manual/administration/install-community/
  2. Follow the instructions in the link above
  3. The mongoDB service can be started using the following command: brew services stop [email protected] Alternatively the cloud version of MongoDB can be downloaded here: https://www.mongodb.com/try/download/compass

Installing IntelliJ:

  1. Open your browser and download the dmg from the following: https://www.jetbrains.com/idea/download/?section=mac (Both the Ultimate or Community edition will work)
  2. Start the IntelliJ Installer executable and follow the instructions.

Installing Apache Maven:

  1. IntelliJ comes pre-built with Apache Maven so no additional installation is required.

Setup:

  1. Open your terminal and clone the project:
  2. Launch Intellij and open up the Mini-SurveyMonkey project
  3. Navigate to the Spring Runnable File: `src/main/java/org.MiniSurveyMonkey/SurveyMonkeyApplication.java
  4. To run the file, click the play button on line 16
  5. The application should run and navigate to http://localhost:8080/ to view the application

Current Progress

We have now completed the Final Demo. Our project was completed on schedule and was tracked using our Jira Board: https://minisurveymonkey.atlassian.net/jira/software/projects/MS/boards/1

This project leverages MongoDB to perform the noSQL operations in our MiniSruvey Project. The web application is functional and has the following features implemented:

  • Create Form
    • Form questions can be multiple choice, take a number input, or be a text input
      • Multiple choice fields can be individually added or removed (default of 2)
      • Number fields can have a lower or upper bound set
    • Takes in form title as input
    • Form questions can be individually deleted
    • Has the ability to submit the form or reset the form entirely
  • View Single Form and Respond
    • Display all the questions back to the user
      • Shows form name
      • Correctly displays multiple choice, number field, and text field
      • User can fill out form with responses and submit (Alpha-Release)
      • Upon submitting a form, users are brought to a success page and can navigate to the View All Forms page (Alpha-Release)
  • View All Forms View
    • Displays all forms in a list (clickable)
    • User can also search for a form based on id
  • User profile
    • Users can login with a username to keep track of who is an author or not when responding to forms
  • Close Form
    • Author can close their form. Doing so will display form responses (analytics for each question)
      • Pie chart for multiple choice question
      • Graph for numerical field question
      • Scrollable list for text responses
  • Delete Form (Final Demo addition)
  • Author can delete a form they have previously created (closed or not).
    • Delete form button appears only for the author of the form
  • Edit Form (Final Demo addition)
    • Author can edit a form they have previously created.
      • Adjust and switch the field types on the form
      • Delete or add more questions
  • Endpoints for all features created
    • All CRUD operations supported: Add Form, Delete Form, Read Form, Delete Form

What is Submitted on BrightSpace:

  • Source Code
  • UML Class Diagram
  • Database Schema Note: ORM Diagram is not included because this project works on a nonrelational database so an ORM diagram is not applicable

mini-surveymonkeysysc4806's People

Contributors

guymorgenshtern avatar andre-hazim avatar shuvaethyneill avatar jackmackinnon51 avatar hkkanwar 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.