Secure Access Management System

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:

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:

  1. Dynamic RBAC: Role-based access for Admin, Shipping Agent, and Logistics Manager.
  2. Real-Time Feedback: Alerts for unauthorized access attempts.
  3. Persistent Uploads: File storage via Google Cloud Storage.
  4. Responsive UI: Bootstrap with Dark Mode toggle.
  5. Upload Validation: Prevents memory overload.
  6. Seed System: Instant demo data setup.
  7. 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:

  1. Clone: git clone https://github.com/willmaddock/final-project.git
  2. Install dependencies: bundle install
  3. Setup database: bundle exec rails db:drop db:create db:migrate db:seed
  4. Start server: rails server
  5. See README for details.

System Architecture:

authenticates

accesses

accesses

accesses

manages

logs

requests

stores

stores

sends

User

Role System

Admin Dashboard

Shipping Agent Portal

Logistics Manager

Access Point Management

Access Logs

Elevated Access Requests

Google Cloud Storage

PostgreSQL

Email Notifications

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

Β© 2024 William Maddock - All Rights Reserved