Skip to content

tamu-edu-students/606-project3-group5

Repository files navigation

Course Dashboard (Rails)

This repository contains a Ruby on Rails application with Google OAuth authentication, RSpec and Cucumber testing, and a course management system.

🔗 Links

📚 Documentation

Document Description
docs/LOCAL_SETUP.md Quick local development setup
docs/TECHNICAL_DOCUMENTATION.md Complete technical guide (setup, deployment, API)
docs/USER_GUIDE.md End-user feature documentation
docs/ARCHITECTURE.md System architecture with diagrams

Generated diagrams are available in docs/diagrams/:

  • database_erd.png - Database Entity-Relationship Diagram
  • models.png - Model class diagram
  • controllers.png - Controller class diagram

🚀 Quick Setup

For detailed setup instructions, see LOCAL_SETUP.md or Technical Documentation

Prerequisites

  • Ruby 3.4.5+
  • Bundler
  • SQLite3 (development/test) or PostgreSQL (production)

Quick Start

# Clone and setup
git clone https://github.com/tamu-edu-students/606-project3-group5.git
cd 606-project3-group5
bundle install

# Database setup
bundle exec rails db:create db:migrate

# Start server
bundle exec rails server
# Visit http://localhost:3000

Features

  • 🔐 Google OAuth Authentication (restricted to @tamu.edu domain)
  • 👤 User Management with NetID integration
  • 🏫 Course Management System
  • 💬 Discussion Channels and Posts
  • ⬆️ Upvoting System for posts and comments
  • Comprehensive Testing (RSpec + Cucumber)

Database Schema

Tables: users, courses, course_enrollments, channels, posts, comments, post_upvotes, comment_upvotes

Testing

# RSpec unit/integration tests
bundle exec rspec

# Cucumber behavior-driven tests  
bundle exec cucumber

# Both with coverage report
bundle exec rspec && bundle exec cucumber

Coverage:

  • SimpleCov is configured for the test suite. After running bundle exec rspec a coverage report will be created under the coverage/ directory. Open coverage/index.html in a browser to view the detailed report.

Files under coverage/ and the .resultset.json file are ignored by git (see .gitignore).

Notes:

  • Development & test use SQLite (storage/.sqlite3). Production is configured to use PostgreSQL; set POSTGRES_ env vars in your deployment.
  • The posts table uses a type column per your schema; Rails STI is disabled in the Post model with self.inheritance_column = :_type_disabled.
  • RuboCop is installed; run bundle exec rubocop to run the linter.

SCSS / Stylesheets

This app now uses Dart Sass via the dartsass-rails gem to compile SCSS files into CSS.

To manually compile SCSS files, run:

bundle exec rails dartsass:build

How to use:

  • The main stylesheet is app/assets/stylesheets/application.scss.
  • You can create partials (files starting with an underscore, e.g. _buttons.scss) and load them from application.scss using @use "./partial_name" or @import for simple cases.
  • Example partial _buttons.scss is included with a primary mixin. Use it like:
.btn-primary { @include buttons.primary(); }

About

Collaborado is a collaborative platform for students to ask questions, share resources, and work together in real-time. Inspired by Piazza, it fosters interactive learning through discussion threads and resource sharing.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors