Giter VIP home page Giter VIP logo

cs370's Introduction

CS370

Build Status Maintainability Test Coverage

Requirements

  • Rails 5.2.3
  • PostgresSQL

If you need help setting up a Ruby development environment, check out this guide

Description:

The application is meant to facilitate tutoring session for cs370.

If you are a student, with the web application you will be able to do the following:

  • Feature 1: Create and edit user profile
  • Feature 2: Monitor tutoring session history
  • Feature 3: Evaluate your tutor and give constructive feedback.
  • Feature 4: Request for a tutor and monitor weekly requests.
  • Feature 5: Log in via password and email
  • Feature 6: Request to be tutored for a specific topic on the student dashboard and edit if needed
  • Feature 7: After the tutor has approved your request, on the new meeting tab, you can choose between a set of available times set up by the tutor

If you are a tutor, you will be able to do the following:

  • Feature 1: Create and edit user profile
  • Feature 2: Select a preferred student you would like to tutor.
  • Feature 3: Email the student to set up a meeting.
  • Feature 4: Monitor hours worked and view ratings generated by students.
  • Feature 5: Log in via email
  • Feature 6: Keep track of scheduled tutoring sessions by logging them
  • Feature 7: Can set up your best times and locations of availability so that you can coordinate with the tutee.
  • Feature 8: On the student selection page, you can see a list of unmatched students and can select them for tutoring
  • Feature 9: Can see the rate (amount of hours per week) that you need to complete your goal

If you are an admin, you will be able to do the following:

  • Feature 1: Set semester and list of courses you are offering for tutoring
  • Feature 2: Generate a table with list of tutors and hours worked
  • Feature 3: Generate composite score for tutors
  • Feature 4: Set privilege for students by simply entering their student sid
  • Feature 5: Change admin password
  • Feature 6: Login with the admin account to view admin-privileged information.

Requirements

  • Rails 5.2.3
  • PostgresSQL
  • Mailcatcher - Dev Only

If you need help setting up a Ruby development environment, check out this guide

Setting Up and Testing

Run the following command in CS370 directory:

$ bundle install --without production

This will download any files along with gems in order to make the app run properly.

$ rails db:reset
$ rails db:migrate
$ rails server

This will launch the server.

  • You may need to set up admin credential locally first in order to access admin page. Do the following:
$ rails c

This opens the Rails development enviroment. For example:

Running via Spring preloader in process 89006
Loading development environment (Rails 5.2.3)
2.5.3 :001 > 

Now, you will have to initialize an Admin object by the following line:

> Admin.create(:password => "1234", :current_semester => "Spring 2019", :statistics_semester => "Spring 2019")

Lastly, in order to view coverage and run tests. Do:

$ cucumber

and/or

$ rspec

In development email are caught by local smtp server, mailcatcher. If you want to view email please do the following OUTSIDE of the project. There will be dependicy issues if you try to include mailcatcher in gem file

$ gem install mailcatcher
$ mailcatcher

What's included?

These gems are added to the standard Rails stack

  • Core
  • Configuration
  • Utilities
  • Security
    • friendly_id - Allows evaluations to be edited publicly
    • devise - Log int authentication system in place
  • Testing
  • Beautifying
    • (optional) bootstrap - Used for designing layout of application
    • (optional) bootstrap-datepicker-rails - Used to format date when creating/editing birthday
    • (optional) bootstrap-glyphicons - Used for design of tutee page
    • (optional) autoprefixer-rails - Tool to parse CSS and add vendor prefixes to CSS rules using values from the Can I Use database
    • (optional) jquery-rails - This gem provides jQuery 1, 2 and 3, the jQuery UJS adapter, assert_select_jquery to test jQuery responses in Ruby tests

Deployment

The first thing you want to do is check if you have git.

$ git --version

If you do not have git, install it following this guide.

The next step you want to take is create a heroku account if you dont already have it. To deploy the application to heroku start first by creating a Heroku account. When you have an account follow this heroku guide deployment guide. And thats how you deploy to heroku using git.

After the application is up and running in heroku, reset and seed the database. You should only do this once.

$ heroku restart
$ heroku pg:reset DATABASE
$ heroku run rake db:migrate
$ heroku run rake db:seed

Then, create an admin to set the semester and begin using the application. To create an admin, run the following in the git repository linked to heroku.

$ heroku run rails c

This will create a ruby console for the heroku app. Then, simply copy and paste the following code to create an admin.

> Admin.create(:password => "1234", :current_semester => "Spring 2019", :statistics_semester => "Spring 2019")

This will create an admin for the deployed application. Now type exit to get out of the rails console.

> exit

There you have it, you can now log in as admin and set the semester, and courses. and the app is ready for use.

Future Possible Features

  • Student Selection Priority and Filtering: As a tutor, so that you can match with students in need of help, you should see a list of students ranked by priority. For instance, those CS scholar and students who have not been selected for a while.

  • Manual Filtering: As a tutor, when you are browsing between students, you can manually filter students based on their courses or topics of interest.

  • Live OCF Link: After the admin successfully registers with the OCF center with a username and password of his choice, he may have a live working link (website_name.berkeley.edu) after transferring the application files through SSH.

cs370's People

Contributors

ah91086 avatar ajsales avatar alvinnguyen116 avatar an-ju avatar ashvinnihalani avatar bdzr avatar cdvillegas avatar clarkpalmer avatar divineechidume avatar dnguyenocc avatar edrees-g avatar freddycervantes avatar luiseangulo97 avatar nikkibayar avatar phuho264 avatar thunguyen19 avatar tinataleb avatar tresten avatar yakshpatell avatar

Watchers

 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.