Inspiration
Navigating public transit can be daunting, especially for those with mobility challenges or accessibility needs. Complex systems, outdated infrastructure, and inconsistent information often create overwhelming experiences. TransitAssist was born from witnessing the daily struggles of individuals who rely on public transportation but face obstacles that make their journeys difficult or even impossible.
Inspired by stories of missed buses due to inaccessible ramps, parents struggling with strollers, and elderly individuals confused by unclear signage, we saw a critical gap in how transit systems serve those with specific needs. TransitAssist addresses this by prioritizing accessibility and providing real-time information, ensuring that everyone, regardless of physical ability, has equal access to safe and reliable transportation options.
What it does
TransitAssist is a web app that allows users to navigate public transit in a customizable and accessible manner. We focused on 3 main elements of the app:
Personalized Accessibility Routes: TransitAssist allows users to input their accessibility requirements, such as wheelchair access or visual impairments, and provides the best possible routes that meet these needs.
Real-Time Alerts: Users can receive updates on any issues that may affect their journey, such as elevator outages, construction, or route changes, ensuring they can plan accordingly.
Community-Driven Feedback: TransitAssist empowers users to flag any accessibility issues they encounter, share feedback, and help improve the system for others by reporting problems directly within the app.
Routes
path('admin/', admin.site.urls),
**admin tools**
path('login/', views.login, name='login'),
path('signup/', views.signup, name='signup'),
path('logout', auth_views.LogoutView.as_view(), name='logout'),
path('social-auth/', include('social_django.urls', namespace='social')),
**authentication tools**
path("", views.home, name='home'),
**homepage when non-authenticated and dashboard when authenticated**
path("home-about/", views.home_about, name="home-about"),
path("home-contact/", views.home_contact, name="home-contact"),
**about and contact pages for non-authenticated users**
path("update-user-details/", views.update_user_details, name="update-user-details"),
path("update-user-prefs/", views.update_user_prefs, name="update-user-prefs"),
path("update-user-mapsettings/", views.update_user_mapsettings, name="update-user-mapsettings"),
path("check-completed-profile/", views.check_completed_profile, name="check-completed-profile"),
path("add-issue/", views.add_issue, name="add-issue"),
path("get-issues/", views.get_issues, name="get-issues"),
path("add-good/", views.add_good, name="add-good"),
path("get-goods/", views.get_goods, name="get-goods"),
path("save-route/", views.save_route, name="save-route"),
path("get-map-settings/", views.get_map_settings, name="get-map-settings"),
path("get-saved-routes/", views.get_saved_routes, name="get-saved-routes"),
path("mark-route-as-saved/", views.mark_route_as_saved, name="mark-route-as-saved"),
**POST request URLS for interfacing with the database**
path("navigate/", views.navigate, name="navigate"),
**navigation page including a search tool and a map, as well as routes displayed**
How we built it
1. Technical Stack
Backend:
- Django: Chosen for its robustness and simplicity in creating complex web applications, Django provides a full suite of tools and features such as ORM, authentication, and an admin panel that make it suitable for rapid development.
- SQLite: Used for development purposes, providing a simple setup for databases without the need for a separate database server.
- Python libraries: Including
phonenumber_fieldfor handling phone number data, andsocial_djangofor integrating social media authentication.
Frontend:
- HTML/CSS/JavaScript: Standard technologies for building web interfaces. HTML templates are rendered through Django’s template engine, which includes dynamic data passing.
- Static Files: Managed by Django and served efficiently in production using WhiteNoise.
Hosting/Deployment:
- Render.com: Deployment on a cloud service that supports Docker .
2. Application Architecture
Data Model:
- User Models: Custom user models extending Django's default user to accommodate specific fields like phone numbers.
- Data Models: Including models for user preferences, map settings, and navigation routes, ensuring that user interactions and preferences are persistently stored and managed.
Security and Authentication:
- Authentication: Using Django’s built-in authentication system, supplemented with social media login capabilities.
- Authorization: Managed via session handling in Django, ensuring that user sessions are secure and data access is controlled.
- GitHub Authentication: Our application uses GitHub for authentication, enabling users to log in using their GitHub accounts.
User Interface:
- Templates and Static Files: Leveraging Django's templating engine to create responsive and interactive web pages.
- Accessibility Features: Integrated within the navigation and reporting features, highlighting the application’s focus on inclusive design.
3. Development Process
Setup and Configuration:
- Setting up the Django project and configuring settings such as
INSTALLED_APPS, database configurations, and middleware. - Defining the URLs and creating views for each web page or functionality.
Building Features:
- Authentication and User Management: Developing the signup, login, and user profile management features.
- Navigation and Route Management: Implementing features to allow users to save routes, mark issues, and report positive accessibility features.
- Social Integration: Implementing social login features to enhance user accessibility and ease of use.
Testing and Deployment:
- Local testing using Django’s development server and the SQLite database.
- Deployment to a cloud platform with necessary configurations for production environments, such as setting up environment variables and securing the secret key.
Iterative Improvements:
- Based on user feedback, we iteratively improved the application by adding new features, refining existing functionalities, and enhancing the user interface.
Challenges we ran into
1. Integration of Social Authentication
Integrating social authentication, including GitHub, can present several challenges:
- API Complexity: Navigating the various APIs and understanding the documentation can be tricky, especially with handling different authentication flows.
- Configuration: Setting up OAuth tokens, secrets, and ensuring that the user data fetched from social platforms aligns with your user model can be complex.
- Security Concerns: Ensuring that the authentication process is secure and that user data is handled safely is paramount and can introduce additional complexity.
2. User Experience and Interface Design
Designing an intuitive and accessible user interface that accommodates various features like route saving, issue reporting, and navigation:
- Responsive Design: Ensuring the website is functional and aesthetically pleasing across different devices and screen sizes.
- Accessibility Features: Implementing accessible web design practices to accommodate all users, including those with disabilities, can be challenging but critical.
3. Data Management and Scalability
Handling data efficiently, especially with functionalities that involve significant data manipulation like route management and user settings:
- Database Design: Designing a scalable database schema that can handle increases in data volume without performance losses.
- Query Optimization: Ensuring that database queries are optimized for performance, particularly when retrieving complex route data or user preferences.
4. Deployment and Scalability
Moving from a development environment to production can bring its own set of challenges:
- Deployment Issues: Encountering issues when deploying on a cloud platform, such as configuration mismatches or dependency problems.
- Scalability: Ensuring that the application scales effectively with increased user load, which might involve load balancing and resource management.
5. Testing and Quality Assurance
Ensuring the application is bug-free and performs as expected:
- Comprehensive Testing: Developing a comprehensive testing strategy that includes unit tests, integration tests, and user acceptance testing can be challenging.
- Bug Fixing: Identifying and fixing bugs, especially those that occur under specific conditions or are difficult to replicate.
6. Legal and Compliance Issues
Navigating the legal aspects related to user data:
- Data Privacy: Ensuring compliance with data protection regulations such as GDPR or CCPA if dealing with sensitive user information.
Accomplishments that we're proud of
1. Successful Integration of Multiple Authentication Systems
- Diverse Authentication Options: Implementing and seamlessly integrating multiple forms of authentication, including Django’s native system and social logins through GitHub. This accomplishment not only enhanced user accessibility and convenience but also demonstrated technical proficiency in securing applications.
2. Robust User Management System
- Custom User Model: Successfully extending the default Django user model to include additional fields and preferences tailored to user needs. This effort improved the application's functionality by allowing more personalized user experiences.
- Secure and Efficient Data Handling: Establishing a secure system for managing user data, including preferences and navigational routes, which are critical for the application's core functionalities.
3. High-Quality User Interface and User Experience
- Responsive Design: Developing a responsive web design that provides an optimal viewing and interaction experience across a wide range of devices. This is a significant achievement in today’s mobile-first world.
- Accessibility Features: Incorporating accessibility features to ensure that the application is usable by people with various disabilities, thereby adhering to inclusive design principles.
4. Advanced Route Management Features
- Innovative Navigation Solutions: Creating complex functionalities that allow users to save routes, report accessibility issues, and share positive navigational experiences. These features not only enhance user engagement but also contribute to community-driven improvements in navigational aids.
- Data Visualization and Reporting: Implementing tools that allow users and administrators to visualize and manage reported data effectively, which is crucial for ongoing maintenance and enhancement of the service.
5. Scalable Application Architecture
- Efficient Scaling and Performance Optimization: Building the application in a way that it can efficiently handle growing amounts of data and user requests without degradation in performance.
- Successful Deployment: Achieving a smooth deployment and operation of the application on cloud platforms, demonstrating your team’s ability to manage real-world application environments.
6. Community Impact and User Feedback
- Positive User Feedback: Receiving positive feedback from users regarding the usability and features of the application, which validates the effort put into the project.
- Contribution to Accessibility: Making a tangible impact on the community by addressing and improving navigational and accessibility challenges faced by users.
What we learned
1. Advanced Django Framework Usage
- Customization and Extension: Learning how to effectively customize and extend the Django framework to suit specific project needs, such as implementing a custom user model and integrating complex user management functionalities.
- Security Best Practices: Gaining a deeper understanding of security practices within web development, especially regarding safe handling of user data and secure authentication mechanisms.
2. Integration of Third-Party Services
- OAuth and Social Logins: Mastering the integration of third-party authentication services like GitHub, which involved understanding OAuth protocols and handling different authentication flows.
- API Utilization: Learning how to efficiently integrate and use various APIs for enhanced functionality, such as map services for route management and social media APIs for user interaction.
3. Frontend and User Experience Design
- Responsive Web Design: Developing skills in creating responsive designs that ensure the application is accessible and functional on various devices.
- Accessibility Standards: Learning about web accessibility standards and how to implement them to make web applications accessible to people with disabilities.
4. Performance Optimization
- Database Optimization: Understanding the importance of and techniques for optimizing database queries to improve the performance and scalability of web applications.
- Static Files Management: Learning how to manage and optimize the delivery of static files, particularly in a production environment using tools like WhiteNoise.
5. Project Management and Collaboration
- Agile Development Practices: Adopting agile methodologies for better project management and teamwork, which helped in maintaining flexibility and responsiveness to changes throughout the development process.
- Version Control Proficiency: Enhancing skills in using version control systems like Git, which is crucial for collaborating on code in a team setting.
6. Problem-Solving and Debugging
- Debugging Complex Issues: Developing effective strategies for identifying and resolving bugs, which involves a deep understanding of the application’s architecture and the interaction between its components.
- Adaptability: Learning to quickly adapt to new challenges and requirements, which is crucial in a dynamic development environment.
7. Legal and Compliance Awareness
- Data Privacy Laws: Gaining awareness and understanding of the legal aspects related to handling user data, including compliance with data protection regulations like GDPR.
What's next for TransitAssist
1. Expansion of Features
- Advanced Route Optimization: Incorporate more sophisticated algorithms that not only consider accessibility needs but also factor in real-time data such as traffic conditions, weather, and user feedback to provide the most efficient routes.
- Multi-modal Transportation Integration: Expand the app's capabilities to include other forms of transportation like ridesharing, biking, and walking, offering a comprehensive travel planner that addresses various user preferences and needs.
2. Enhanced User Engagement and Personalization
- Gamification Elements: Introduce features such as rewards or badges for users who actively contribute to the community by reporting issues or providing feedback, which can enhance user engagement and participation.
- Customizable User Profiles: Allow users to further customize their profiles and preferences for a more personalized navigation experience, such as setting default starting points, favorite routes, and accessibility preferences.
3. Broader Geographic Coverage
- Scaling to New Cities: Plan for geographic expansion by adapting the application to support new cities and regions, which involves collaborating with local transit authorities to integrate their data and understand specific regional challenges.
- Internationalization and Localization: Offer the app in multiple languages and customize it for different cultural contexts to cater to a global user base.
4. Technological Advancements
- AI and Machine Learning: Leverage AI technologies to predict and analyze transit patterns, user behavior, and accessibility issues, which can improve the predictive capabilities of the app and offer proactive suggestions to users.
- Augmented Reality (AR) Navigation: Develop AR features to provide visual navigation aids in real-time through mobile devices, helping users navigate complex transit stations or street environments more easily.
5. Partnerships and Community Building
- Collaboration with NGOs and Governments: Establish partnerships with non-profits and government agencies focused on transportation and accessibility to gain insights, funding, and support for broader initiatives.
- Community Workshops and Training: Organize community events and workshops to educate users on the features of the app and engage with them to gather insights and feedback directly.
6. Data Security and Privacy Enhancements
- Enhanced Data Protection: Continuously update and fortify the app’s security measures to protect user data, especially as the app scales and handles more sensitive information.
- Transparency and Control: Provide users with more control over their data, including clearer options for data sharing and privacy settings.
These initiatives aim to make TransitAssist not just a tool for navigation but a platform for community engagement and a catalyst for change in public transit systems worldwide.
Built With
- css3
- django
- docker
- geoapify
- github-auth
- google-maps
- html5
- javascript
- python
- render.com
- sqlite


Log in or sign up for Devpost to join the conversation.