From September 2024 to December 2024, I founded and led the Secure Access Management System as part of my B.S. in Computer Science at MSU Denver. This Ruby on Rails web application implements role-based access control (RBAC), security clearance management, and accessibility-first design for secure, user-friendly workflows.
π View Live Application Website
π View GitHub Repository
βΆοΈ Project Presentation Video
π Default Login Credentials
Use this seeded account to access the app for testing purposes only:
- Email: logistics_manager@example.com
- Password: password
Note: These credentials are for demonstration and evaluation purposes. Please do not use them for any real-world operations or share them beyond authorized testing. For security, I recommend creating your own account for extended use.
π Project Highlights
- Built a Ruby on Rails web app with dynamic RBAC for Admin, Shipping Agent, and Logistics Manager roles across four development sprints.
- Integrated Google Cloud Storage for persistent file uploads.
- Implemented accessibility-first design with ARIA roles, high contrast, and keyboard navigation.
- Deployed on Render with zero downtime on a 256 MB free tier.
π¦ My Role: Founder and Lead Developer
- Vision and Leadership: Defined the projectβs scope for secure, accessible access management.
- Development: Designed and coded the app, including RBAC, UI, and cloud storage integration.
- Testing: Wrote RSpec and Capybara tests, achieving 97% model coverage.
- Deployment: Configured Puma and Render for low-RAM production deployment.
This role enhanced my skills in web development, security, and accessibility.
π₯ Contributors and Credits
A solo-led project developed for educational purposes, with potential for future open-source contributions. Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0.
β¨ Key Features
The Secure Access Management System offers:
- Dynamic RBAC: Role-based access for Admin, Shipping Agent, and Logistics Manager.
- Real-Time Feedback: Alerts for unauthorized access attempts.
- Persistent Uploads: File storage via Google Cloud Storage.
- Responsive UI: Bootstrap with Dark Mode toggle.
- Upload Validation: Prevents memory overload.
- Seed System: Instant demo data setup.
- Accessibility-First: ARIA roles, high contrast, keyboard navigation.
Integrations: Google Cloud Storage, PostgreSQL, Bootstrap, Render.
π οΈ Technologies Used
- Languages/Frameworks: Ruby on Rails, HTML5, CSS3, JavaScript, Bootstrap
- Database: PostgreSQL
- Storage: Google Cloud Storage (Active Storage)
- Testing: RSpec, Capybara
- Deployment: Render, Puma
- Methodologies: Agile, DevOps
- Documentation: README, Technical Documentation
π Repository Contents
Resource | Description |
---|---|
app/models | ActiveRecord models and validations |
app/controllers | Controller logic and seed trigger |
app/views | Responsive ERB templates |
db/migrate | Database schema migrations |
db/seeds.rb | Demo dataset creation |
spec/ | RSpec unit and system tests |
config/puma.rb | Puma config for low-RAM environments |
config/storage.yml | Google Cloud Storage configuration |
π Project Rigor
The GitHub repository showcases:
- Detailed commit history across four development sprints (September 2024 β December 2024).
- Comprehensive test coverage (97% model coverage) with RSpec and Capybara.
- Production-ready deployment on Render with optimized Puma settings.
Setup:
- Clone:
git clone https://github.com/willmaddock/final-project.git
- Install dependencies:
bundle install
- Setup database:
bundle exec rails db:drop db:create db:migrate db:seed
- Start server:
rails server
- See README for details.
System Architecture:
Testing:
- Unit tests:
bundle exec rspec spec/models/user_spec.rb
- System tests:
bundle exec rspec spec/system/agent_login_spec.rb
,bundle exec rspec spec/system/restricted_area_access_spec.rb
π Links and Resources
- Live Application Website
- GitHub Repository
- Project Presentation Video
- Project README
- Project Proposal
- Exploration Approval
- Requirements Report
- Sprint 01 Report
- Sprint 02 Presentation
- Final Presentation
- MDN Web Docs
- Ruby on Rails Guides
- GOV.UK Accessibility Blog
- Render Deployment Docs
Β© 2024 William Maddock - All Rights Reserved