Team project for Graduate software engineering course Enterprise Application Development.
-
The goal is to build a distributed enterprise web application which enables the user to become surveyor and surveyee. User can login and create surveys as a surveyor and ask others to provide their response. Surveyee does not have to be registered to participate in survey and can provide survey response.
-
We were tasked with this project requirement so that we can learn and develop REST API enterprise application.
- User can be surveyee and surveyor
- 3 types of survey in terms of their accessibility:
- General: Accessible by anyone
- Open: Accessible by invited user
- Closed: Accessible by invited and registered user only
- Applications supports following questions types in survey:
- Multiple choice questions
- Choice type
- Text only: all choices are given as text.
- Image only: every choice is given as an image.
- Answer type:
- Dropdownlist (Single selection only)
- Radio button (Single selection only)
- Checkbox (Single & multiple selection)
- Choice type
- Yes/no questions.
- Short answer questions, where the answer is plain text.
- Date/time questions, which allow the surveyee to pick a Date and/or Time as the answer
- Star rating questions, which allow surveyees to rank a variable using 0-5 stars
- Multiple choice questions
- Surveyor can visualize statistics of survey for each question in dashboard
- Surveyor can export created survey and import multiple questions from any survey
Area | Technology |
---|---|
Front-End | React, Redux, React Router, Bootstrap, HTML5, CSS3, Javascript ( ES6 ) |
Analytics Graphs | chart.js |
Back-End | Spring Boot (Hibernate, JPA, AOP), Java |
API Testing | JUnit, Postman |
Database | MySQL (AWS RDS) |
Image File Storage | AWS S3 Bucket |
Deployment | AWS EC2 |
Database design and the data was critical for the project so To maintain consistency within team we deployed our database on AWS RDS (MySQL).
docker run -d -p 6603:3306 --name=docker-mysql --env="MYSQL_ROOT_PASSWORD=username" --env="MYSQL_PASSWORD=password" --env="MYSQL_DATABASE=dbname" mysql
docker build -f Dockerfile -t surveyape-server:1.0.2 .
docker run -t --name surveyape-server --link docker-mysql:mysql -p 8080:8080 surveyape-server:1.0.2
docker build -f Dockerfile -t surveyape-client:1.0.0 .
docker run -t --name surveyape-client --link surveyape-server:surveyape-server -p 3000:3000 surveyape-client:1.0.0
- Arijit Mandal
- Rutvik Pensionwar
- Sannisth Soni
- Varun Shah