{"id":772,"date":"2025-08-02T14:19:39","date_gmt":"2025-08-02T20:19:39","guid":{"rendered":"https:\/\/richardkershner.com\/?page_id=772"},"modified":"2025-08-02T15:13:53","modified_gmt":"2025-08-02T21:13:53","slug":"project-ride-share","status":"publish","type":"page","link":"https:\/\/richardkershner.com\/?page_id=772","title":{"rendered":"Project Ride-Share"},"content":{"rendered":"\n<p><\/p>\n\n\n<style>.kb-row-layout-id772_022d51-75 > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id772_022d51-75 > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id772_022d51-75 > .kt-row-column-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:var(--global-kb-gap-md, 2rem);max-width:600px;margin-left:auto;margin-right:auto;padding-top:10px;padding-right:0px;padding-bottom:10px;padding-left:0px;grid-template-columns:minmax(0, 1fr);}.kb-row-layout-id772_022d51-75{background-image:url('https:\/\/richardkershner.com\/wp-content\/uploads\/2025\/08\/artboard_Mnt_busses.png');background-size:cover;background-position:50% 10%;background-attachment:fixed;background-repeat:no-repeat;}.kb-row-layout-id772_022d51-75 > .kt-row-layout-overlay{opacity:0.80;background-color:var(--global-palette9, #ffffff);mix-blend-mode:normal;}@media all and (max-width: 1024px), only screen and (min-device-width: 1024px) and (max-device-width: 1366px) and (-webkit-min-device-pixel-ratio: 2) and (hover: none){.kb-row-layout-id772_022d51-75{background-attachment:scroll;}}@media all and (max-width: 1024px){.kb-row-layout-id772_022d51-75 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}@media all and (max-width: 767px){.kb-row-layout-id772_022d51-75 > .kt-row-column-wrap{padding-top:120px;padding-right:15px;padding-bottom:60px;padding-left:15px;grid-template-columns:minmax(0, 1fr);}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id772_022d51-75 alignfull kt-row-has-bg wp-block-kadence-rowlayout\"><div class=\"kt-row-layout-overlay kt-row-overlay-normal\"><\/div><div class=\"kt-row-column-wrap kt-has-1-columns kt-row-layout-equal kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top\">\n<style>.kadence-column772_b964d2-47 > .kt-inside-inner-col{padding-top:10px;padding-right:10px;padding-bottom:10px;padding-left:10px;}.kadence-column772_b964d2-47 > .kt-inside-inner-col,.kadence-column772_b964d2-47 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column772_b964d2-47 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column772_b964d2-47 > .kt-inside-inner-col{flex-direction:column;}.kadence-column772_b964d2-47 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column772_b964d2-47 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column772_b964d2-47{position:relative;}@media all and (max-width: 1024px){.kadence-column772_b964d2-47 > .kt-inside-inner-col{flex-direction:column;}}@media all and (max-width: 767px){.kadence-column772_b964d2-47 > .kt-inside-inner-col{flex-direction:column;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column772_b964d2-47 inner-column-1\"><div class=\"kt-inside-inner-col\"><style>.wp-block-kadence-advancedheading.kt-adv-heading772_dab1a1-89, .wp-block-kadence-advancedheading.kt-adv-heading772_dab1a1-89[data-kb-block=\"kb-adv-heading772_dab1a1-89\"]{margin-bottom:26px;text-align:center;font-size:var(--global-kb-font-size-xl, 3rem);line-height:64px;font-style:normal;border-top-left-radius:20px;border-bottom-right-radius:20px;}.wp-block-kadence-advancedheading.kt-adv-heading772_dab1a1-89 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading772_dab1a1-89[data-kb-block=\"kb-adv-heading772_dab1a1-89\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}@media all and (max-width: 767px){.wp-block-kadence-advancedheading.kt-adv-heading772_dab1a1-89, .wp-block-kadence-advancedheading.kt-adv-heading772_dab1a1-89[data-kb-block=\"kb-adv-heading772_dab1a1-89\"]{font-size:32px;line-height:36px;}}<\/style>\n<h1 class=\"kt-adv-heading772_dab1a1-89 wp-block-kadence-advancedheading has-theme-palette-3-color has-text-color\" data-kb-block=\"kb-adv-heading772_dab1a1-89\"><strong>Project <\/strong><br>\ud83d\udefa <strong>Ride-Share<\/strong>\ud83d\uddfa\ufe0f<\/h1>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading772_2cb383-a5, .wp-block-kadence-advancedheading.kt-adv-heading772_2cb383-a5[data-kb-block=\"kb-adv-heading772_2cb383-a5\"]{margin-bottom:40px;text-align:center;font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading772_2cb383-a5 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading772_2cb383-a5[data-kb-block=\"kb-adv-heading772_2cb383-a5\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}<\/style>\n<p class=\"kt-adv-heading772_2cb383-a5 wp-block-kadence-advancedheading has-theme-palette-4-color has-text-color\" data-kb-block=\"kb-adv-heading772_2cb383-a5\">\ud83e\udd8b <br><br><strong>Smarter Routing, Shorter Rides, Optimized Resources<\/strong><\/p>\n\n\n\n<p>Project <strong>Ride-Share<\/strong> addresses a major inefficiency in community-based transportation: outdated and suboptimal scheduling. While numerous open-source ride-share platforms exist, most prioritize the <em>first<\/em> available fit\u2014not the <em>best<\/em> possible route. This wastes time, fuel, and driver effort.<\/p>\n\n\n\n<p>This project builds on earlier prototype algorithm testing by integrating that work into a real-world, open-source ride-share scheduling system. It specifically targets shared community fleets\u2014such as mini-buses or vans serving 10\u201314 passengers\u2014operating across multiple zones and accommodating complex pick-up and drop-off logistics.<\/p>\n<\/div><\/div>\n\n<\/div><\/div>\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>\ud83e\udde0 <strong>Overview &amp; \u2699\ufe0fTechnical Highlights<\/strong><\/summary>\n<p style=\"padding-top:0;padding-right:var(--wp--preset--spacing--30);padding-bottom:0;padding-left:var(--wp--preset--spacing--30)\"><strong>Core Components:<\/strong><br>\u2705 <em>Initial scheduling Algorithms has been tested and rated.<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Open-Source ride-share:<\/strong><br>\u25e6 Not reinventing the wheel.  Find and review existing packages to work with.  Update this section once specific modules are selected<\/li>\n\n\n\n<li><strong>Middleware Layer:<\/strong><br>\u25e6 GitHub split-repo structure to manage OSS base + custom modules<br>\u25e6 Clean API interfaces between scheduler, and ride database<\/li>\n\n\n\n<li><strong>Backend Logic:<\/strong><br>\u25e6 Custom optimization algorithms for stop packing and route scoring<br>\u25e6 Zone-based heuristics for multi-pickup scenarios<br>\u25e6 Metrics engine for tracking gains (time saved, distance reduced, etc.)<\/li>\n<\/ul>\n<\/details>\n<\/div><\/div>\n\n\n\n<details class=\"wp-block-mamaduka-toggles wp-block-toggles\"><summary>\u270d\ufe0f <strong>Creator\u2019s Note<\/strong><\/summary><div class=\"wp-block-toggles__content\">\n<p style=\"padding-right:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)\">From personal experience driving a small transit bus that fills in the gaps left by traditional public transport, I\u2019ve seen how outdated scheduling systems impact real people\u2014especially those with disabilities or those living far from fixed routes.<br><strong>Most current systems in use (and many OSS ride-share platforms)<\/strong> don&#8217;t evaluate the <em>route<\/em> itself. Instead, they check only whether a ride \u201cfits\u201d in the schedule, often at the expense of efficiency. This results in nonsensical routing\u2014e.g., a two-block ride turning into a 45-minute trip across town and back\u2014based solely on request order rather than route quality.<br><strong>My goals:<\/strong> <br>Plug in my scheduler as a modular upgrade to what already exists, and publish the results as a case study in open-source collaboration.<br>Extend my experience in working with GitHub OpenSource coding.<\/p>\n<\/div><\/details>\n\n\n\n<details class=\"wp-block-mamaduka-toggles wp-block-toggles\"><summary>\ud83d\udea7 <strong>Development Timeline<\/strong><\/summary><div class=\"wp-block-toggles__content\">\n<p><strong>\u2705<\/strong> <strong>Extensive testing of different scheduling algorithms.<\/strong><\/p>\n\n\n\n<p><strong><strong>\u2796<\/strong>Phase 1: OSS Audit &amp; Codebase Selection<\/strong><br>\u2022 Review and test leading open-source ride-share systems<br>\u2022 Select a baseline codebase with accessible integration points<br>\u2022 Create GitHub split-repo structure for core vs. custom logic<\/p>\n\n\n\n<p><strong><strong>\u2796<\/strong>Phase 2: Algorithm Integration &amp; MVP<\/strong><br>\u2022 Embed custom scheduling algorithms into the selected OSS base<br>\u2022 Compare legacy vs. optimized route outputs using synthetic test cases<br>\u2022 Build route visualizer to inspect logic and inefficiencies<\/p>\n\n\n\n<p><strong><strong>\u2796<\/strong>Phase 3: Real-World Simulation &amp; UI Additions<\/strong><br>\u2022 Simulate passenger flow and request patterns from actual routes<br>\u2022 Add frontend tools to monitor scheduling decisions in realtime<br>\u2022 Begin tuning algorithms based on performance metrics<\/p>\n\n\n\n<p><strong><strong>\u2796<\/strong>Phase 4: Documentation, GitHub Sharing &amp; Community Involvement<\/strong><br>\u2022 Write full setup documentation and scheduler architecture breakdown<br>\u2022 Publish \u201clessons learned\u201d blog posts and walkthrough videos<br>\u2022 Open repository for contributions and review at least one pull request<br>\u2022 Measure KPIs: GitHub stars, merged PRs, and scheduler performance gain<\/p>\n<\/div><\/details>\n\n\n\n<details class=\"wp-block-mamaduka-toggles wp-block-toggles\"><summary><strong>Blogs, Posts and Videos<\/strong><\/summary><div class=\"wp-block-toggles__content\"><\/div><\/details>\n\n\n\n<details class=\"wp-block-mamaduka-toggles wp-block-toggles\"><summary><strong>Lessons learned blog<\/strong><\/summary><div class=\"wp-block-toggles__content\"><\/div><\/details>\n\n\n\n<details class=\"wp-block-mamaduka-toggles wp-block-toggles\"><summary>\ud83c\udfa5 <strong>Demos &amp; Screenshots<\/strong><\/summary><div class=\"wp-block-toggles__content\"><\/div><\/details>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Project \ud83d\udefa Ride-Share\ud83d\uddfa\ufe0f \ud83e\udd8b Smarter Routing, Shorter Rides, Optimized Resources Project Ride-Share addresses a major inefficiency in community-based transportation: outdated and suboptimal scheduling. While numerous open-source ride-share platforms exist, most prioritize the first available fit\u2014not the best possible route. This wastes time, fuel, and driver effort. This project builds on earlier prototype algorithm testing by&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"class_list":["post-772","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/richardkershner.com\/index.php?rest_route=\/wp\/v2\/pages\/772","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/richardkershner.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/richardkershner.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/richardkershner.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/richardkershner.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=772"}],"version-history":[{"count":12,"href":"https:\/\/richardkershner.com\/index.php?rest_route=\/wp\/v2\/pages\/772\/revisions"}],"predecessor-version":[{"id":794,"href":"https:\/\/richardkershner.com\/index.php?rest_route=\/wp\/v2\/pages\/772\/revisions\/794"}],"wp:attachment":[{"href":"https:\/\/richardkershner.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}