SYSC-4806-Proj / Mini-SurveyMonkey

Spring boot based questionnaire web
0 stars 0 forks source link

Mini-SurveyMonkey

GitHub contributors GitHub issues

Content

Background

This project is a mini survey monkey application. User should be able to create questionnaires and allow others to fill it. The surveyor can close his/her questionnaire at any time. The results of this survey would be shown as automatically generated graphs.

A surveyor can create questionnaire with 3 types of questions. Questions can be open-ended(text), choice question, or asking for a number within a range.


Install

clone the project to your local directory

   git clone https://github.com/SYSC-4806-Proj/Mini-SurveyMonkey.git

Usage

Run Locally:

  1. open the cloned project folder in IntelliJ, clicking "Open", and select the project folder.
  2. When the project is open, the workspace should using Maven and Java 8. IntelliJ will automatically help uou to select your sdk and to import Maven.
  3. Find the Maven tab on the right, click on SYSC4806->Lifecycle->Package. This will compile a build that is able to run.
  4. Now we can run our project by clicking Run->main

    Access Remotely:

    Click this URL:

    https://mini-survey-monkey18.herokuapp.com/

Milestones

Milestone 1 (Deadline: March 11th, 2022)

For Milestone 1, our team designed the whole structure of the Mini-SurveyMonkey. According to our discussion, the program has been break into four parts: front-end (templates), Controller, Backend(Entity models) and Database.

Entity models contains class:
OpenEnd, Questionnaire, Range, Selection and User.
(Junit test for Entity models are in the test folder)

For now the fount-end can support the user to create questionnaires and choose which kind of questions they want to have in it (OpenEnd, Range, and Selection)

Surveyor can can edit the problems for all questions, the minimum and maximum boundaries for range questions, and the options for selection questions.
The created questions can be saved into database (the Junit test has been made to test create & save questions and write answers fot the questions)

All the Java code has been saved on the GitHub (master branch), all database is uploaded to the Heroku and the program is connected to CircleCI for automatically continuous integration

Milestone 2 (Deadline: March 25th, 2022)

For Milestone 2, our team developed most of the basic functionalities and features of the Mini-SurveyMonkey. And now, the system has the following features:

Milestone 3 (Deadline: April 8th, 2022)


Contributing

Ruixuan Ni

  1. Developed the whole project structure [DONE]
  2. Home page : sign up and login. After the user is logged in, the users would be lead to the operation page for further operation. [DONE]
  3. Develop the user login management system [DONE]

TianTian Lin

  1. Create Function: create questionnaire after login [DONE]
  2. Create Function: add three optional questions type buttons. Allow surveyor to create their own questions, have the minimum and maximum for range questions and options for selection questions. [DONE]
  3. Create Function: after create, return to home page for further operation. [DONE]
  4. Save the three type of questions in each questionnaire into the database. [DONE]

Jiawei Ma

  1. Search Function: one user ID only can fill the questionnaire once. [doing]
  2. Search Function: after submit the questionnaire, return to home page, user can select the next step. [DONE]
  3. Create model objects under Entity folder, and add JUnit tests for models. [DONE]
  4. Generate database based on the models. [Re-modified and DONE]
  5. Deploy the database to Heroku Postgres, and deploy the system to CircleCI and Heroku.[Re-modified and DONE]

ShiZhong Shang

  1. Create Display page and function: surveyors can see the questionnaires created by themselves [DONE]
  2. Close Questionnaire Function: Surveyors can close the questionnaire in the Display page at any time. [DONE]
  3. Redirect to the result page: once the questionnaire is closed, the display result button would be available. And the result button would redirect the users to the result page. [DONE]

Jiatong Han

  1. Generate the result: the function need the question's id in advance. [DONE]
  2. Create Result Function: Generate results of the questions' answers from database once the questionnaire is closed. The results are ordered by the question id. [DONE]
  3. Find the API to convert the results of selection questions and range questions to diagram and pie chart separately. [DONE]

Diagrams

Database Schema Diagram

image