Class Portal is submitted as Program 1 for CSC 517 Spring 2016 and is deployed to Heroku. The application adheres to this requirements document.
##Build Environment
- This Class Portal uses Ruby Version 2.2.3, Rails Version 4.2.4 and postgres as database.
- The following link is used to install Rails and setup postgres(https://gorails.com/setup/ubuntu/15.10)
- JetBrains RubyMine is recommended IDE for ruby development.
##Setup The below steps are recommended to setup the application in RubyMine. Before starting to work on this application, start postgres and connect to development database. (As your local machine is your development branch)
postgres -D postgres # to start postgres
Also, you can install pgAmin. For Ubuntu users, sudo apt-get install pgadmin3 does the trick. pgAdmin helps in easily managing your database.
Clone the repository from csc517-classPortal and run following commands (in order) in terminal.
bundle install
rake db:migrate
rake db:seed
rails server # starts the server
Open any browser and visit http://localhost:3000 (Assuming that you are using the default port)
##Configuration The default admin login information for this portal is (Please don't change these details while testing the app)
Name: admin
Email: admin@csc517.com
Password: csc517
##Usage
- Students can sign up at login page by entering name, email (should be unique) and password. Admins can create students, instructors and other admins. Users can change their passwords any time by clicking 'Edit Profile' found at right corner of page.
- Student can enroll in a course and it shows up in 'My Courses' tab.
- User history can be seen by the admin once they click 'View details' button adjacent to corresponding user's name in 'Manage Users' tab.
- Instructor can view course content/material when they click the course they wish to look at (In 'My Courses' tab)
- Admin can view course content/material when they click 'View details' button adjacent to corresponding course in 'Manage Courses' tab.
- Grades assigned to students are only numeric (0-100) in steps on 1. (If you try to enter alphabets, the field doesn't even take your input)
- Student can cancel Enrollment Request only by using 'Search Courses' tab, searching for the course they sent a Enrollment Request for, clicking the course (only for Active courses) and hitting 'Cancel Enrollment Request' button.
- To send an Inactivation request for a particular course, Instructor can click 'Inactivate Course' button after selecting a course from their list of courses.
- As an instructor, to send messages, an Instructor can click 'Messages' button after selecting a course from their list of courses. In the messages view, there is a 'Send message' option for each student enrolled in course. This helps them to send a message to particular student. (No bulk messages are supported)
- For students, to send a message, they can hit 'View messages' after selecting a course from their list of courses. In the messages view, they can send a message by entering the message in textbox and clicking 'Send Message' button. (A student can send messages only to instructors of his/her courses).
##Assumptions Here are assumptions as part of development of this application -
- This model assumes that when an Admin creates a user with login email and password, admin communicates the same to the user and the use can login using these details. The user can change his password after his first login using 'Edit Profile' option.
- If an Instructor is deleted, history of courses (active) Instructor is currently teaching and that are scheduled for future will be lost. The history of already taught courses is saved so that student who had taken the course can view their grades.
- If an active course is deleted, then student enrollments, enrollment requests and history information (of this specific course) of users and instructors related to that particular course are all removed from system.
- There can be more than one section for a given course (same course number) and a student can only enroll in one of these sections.
- Having multiple instructors for a given course is implemented as creating mutiple sections for the same course.
##Extra Credit This application has the following features, which fall under Bonus/Extra Credit -
- Students and Instructors can exchange private messages. Messages can only be exchanged between an Instructor and students enrolled in his/her course(s).
- An Instructor of the course can request to make a course “Inactive”. The request can be viewed by the admins only.
##References