Calgary Connect

About the Project

Inspiration

Calgary Connect was born out of a desire to create a local digital space where Calgarians could come together, share their voices, and support each other through every aspect of daily life. Inspired by the strong community spirit of Calgary—from its vibrant cultural events to its unique financial challenges—we wanted to design a platform that not only fostered local connections but also addressed everyday needs like budgeting and meal planning.

What we Learned

Throughout this project, we delved deeply into:

Real-Time Communication: Integrating Django Channels and WebSockets taught us how to build robust, real‑time messaging systems. File Handling: Implementing image uploads for posts and messages improved our understanding of Django’s file storage mechanisms. User-Centric Design: Balancing multiple features like posting, direct messaging, following, and financial management challenged us to think about how to best present information in an intuitive, accessible manner. Database Management: Managing migrations and ensuring data integrity across multiple models (like posts, likes, follows, comments, and financial entries) was both challenging and rewarding. How I Built It The project was built using Django for the backend, with Channels providing the real‑time WebSocket functionality. Here’s an overview of the core components:

Django & MySQL: Served as the foundation for user management, posts, messaging, and financial tracking. Django Channels: Enabled real‑time messaging, replacing traditional polling with WebSocket connections for instant communication. File Uploads: Integrated image uploads for both posts and direct messages, leveraging Django’s built‑in file storage system. Responsive UI: The front end was styled with custom CSS and Bootstrap to ensure a clean, modern look and a user‑friendly experience. Financial Tools: Built-in forms allowed users to track their income and expenses directly on the site, eliminating the need for external spreadsheets.

Challenges Faced

Real-Time Messaging: Switching from a JavaScript polling mechanism to WebSockets with Django Channels required rethinking the entire messaging system. Debugging asynchronous code and ensuring a seamless user experience was a steep learning curve. File Handling: Ensuring that images uploaded via posts and messages were stored, served, and displayed correctly involved juggling Django’s media settings, file storage configurations, and responsive front‑end design. Database Migrations: Managing complex migrations for multiple models (including posts, comments, likes, follows, and financial entries) was challenging, especially when introducing new relationships and ensuring data integrity. User Experience: Balancing multiple features (social networking, real‑time messaging, and financial management) in one platform required careful UI/UX design to keep the interface intuitive and engaging. Calgary Connect is the culmination of overcoming these challenges, and it represents both a technical achievement and a commitment to fostering a strong local community. It’s been a rewarding journey of growth and innovation, and we look forward to continually refining and expanding the platform.

Share this project:

Updates