SYSC4806
Version Numbers
Ruby version = 3.0.3
Rails version = 7.0.2.2
Node Version = any
Python version = 2.7.18
PostgreSQL version = 14.2
Setup Instructions
- Go to https://nodejs.org/en/download/ and install node js
- Follow the instructions here to install yarn https://classic.yarnpkg.com/lang/en/docs/install/#windows-stable
- Go to https://rubyinstaller.org/downloads/ and install Ruby version 3.0.3 with dev kit
- Check that the version is correct by running
ruby --version
in a terminal in your IDE
- Run
bundle install
in the project root folder to download all the required gems locally
- Run
yarn install
in the project root folder to download the required modules locally
- If you run into any issues with python not being found, please follow the solution described here https://stackoverflow.com/questions/45801457/node-js-python-not-found-exception-due-to-node-sass-and-node-gyp
- Run
rails db:migrate
in the project root folder
- Note: If you don't see any output after running this command try running
bin/rails db:migrate
instead.
- Run
rails s
and navigate to localhost:3000
Project State
- [March 7th, 2022]
- As of now, the project repo is setup, a project roadmap has been created, and a database schema has been completed.
- The project has all of the database tables from our design
- The project has apis to create, update, and delete surveys and create, update, and delete text questions, but they have not been merged in due to an external issue with the unit tests
- Update [April 7th, 2022]
- As of now, the project is complete. All of the required backend APIs exist and all of the pages we planned to create have been created. There is a homepage where you can view all of the existing surveys and a button to navigate to the /createSurvey page. For each survey on the homepage, you can view all of the survey information and view a list of actions. These actions include responding to a survey and closing a survey if the survey is live and viewing the survey metrics if the survey has been closed. If you click on the Create Survey button, you will be navigated to the /createSurvey page where you can create a new survey, add open ended text questions, and add multiple choice questions. Once you submit, you will be given a link you can use to share the survey. You can respond to a survey by using the given link or by clicking "Respond to" for a specific survey on the homepage. This page lets users fill in their answers then submit their answers. You can close a specific survey from the homepage. Once the survey is closed you wil be redirected to the survey metrics page. This page displays all of the open-ended responses to the survey and a pie chart of the responses to multiple choice questions. If a user navigates to the link used to respond to a survey but the survey is not live, an error message pops up saying that the survey is now closed and redirects them back to the homepage.
- Here is the updated database schema. The overall structure is the exact same, but the columsn were renamed to use a underscore naming convention since that is the standard for Ruby on Rails. Three new columns have been added which is explained in the diagram below.
- Lastly, the project has auto-deploy enabled for heroku. You can find the deployed website here: https://sysc4806-surveys.herokuapp.com/. The project also has CircleCI integrated which runs all of the rspec unit tests for every pull request.
- Here is the UML Diagram for the models. As written in the image, Ruby on Rails defines model classes very differently. You can find our model classes in the app/models folder in the code, but these classes are very empty because Rails auto generates a lot of methods and variables on its own.
-
Sprints
Sprint 1 - February 11 - 25
- Plan: The team worked together to setup the project as per the Project Rules document on Brightspace, create a database schema, and set up the project roadmap.
- Accomplished: A repo that is ready to develop in, repo setup instructions, a complete database schema, and a project roadmap.
- Carryover: setup CircleCI and Heroku
Sprint 2 - February 25 - March 8th
- Plan: The team plans to finish setting up CircleCI, Heroku, and finish majority of the Create Survey feature [https://github.com/AashnaNarang/SYSC4806/issues/12].
- Accomplished: Finished majority of the Create Survey feature, setup Heroku and CircleCI
Sprint 3 - March 8th - March 25th
- Plan: The team plans to finish the Create Survey feature, make it so CircleCI runs our unit tests, and finish the Use Survey feature [https://github.com/AashnaNarang/SYSC4806/issues/29].
- Accomplished: The team finished the Create Survey feature and the Use Survey feature
Sprint 4 - March 25th - April 8th
- Plan: The team plans to create a dashboard where you can see all the surveys that you can respond to, a button to create a survey, and end a survey+ see stats. The team also plans to finish a stats page for each survey.
- Accomplished: The team successfully finished both the dashboard [https://github.com/AashnaNarang/SYSC4806/issues/63] and metrics [https://github.com/AashnaNarang/SYSC4806/issues/64] features. This allowed the team to complete all of the features we planned to create. We had some tasks that we wanted to finish but decided they were out of scope because of time restrictions and because they are not needed to use the app. These out of scope tasks include adding more error handling in the frontend and adding back buttons.