This repository contains a Ruby on Rails application with Google OAuth authentication, RSpec and Cucumber testing, and a course management system.
- Deployed Application: https://collaborado-e8c9ed9104c5.herokuapp.com
- GitHub Repository: https://github.com/tamu-edu-students/606-project3-group5
- GitHub Project Board: https://github.com/orgs/tamu-edu-students/projects/167
| 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 Diagrammodels.png- Model class diagramcontrollers.png- Controller class diagram
For detailed setup instructions, see LOCAL_SETUP.md or Technical Documentation
- Ruby 3.4.5+
- Bundler
- SQLite3 (development/test) or PostgreSQL (production)
# 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- 🔐 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)
Tables: users, courses, course_enrollments, channels, posts, comments, post_upvotes, comment_upvotes
# RSpec unit/integration tests
bundle exec rspec
# Cucumber behavior-driven tests
bundle exec cucumber
# Both with coverage report
bundle exec rspec && bundle exec cucumberCoverage:
- SimpleCov is configured for the test suite. After running
bundle exec rspeca coverage report will be created under thecoverage/directory. Opencoverage/index.htmlin 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
poststable uses atypecolumn per your schema; Rails STI is disabled in thePostmodel withself.inheritance_column = :_type_disabled. - RuboCop is installed; run
bundle exec rubocopto run the linter.
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:buildHow 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 fromapplication.scssusing@use "./partial_name"or@importfor simple cases. - Example partial
_buttons.scssis included with aprimarymixin. Use it like:
.btn-primary { @include buttons.primary(); }