Mensa Member Connect

Summary:
The MENSA Networking App was developed to facilitate connections between members of the MENSA community, allowing users to browse profiles, send connection requests, and manage ongoing relationships. The app provides a centralized platform for networking, enabling both casual introductions and more structured interactions, while giving administrators insight into user activity.

Links

Live App: https://www.namme.us

API Server (Django REST): https://github.com/bbornino/mensa_member_connect_backend

Web Client (React + TypeScript): https://github.com/bbornino/mensa_member_connect_frontend

Tools & Tech Stack

  • Backend: Python with Django and Django REST Framework
  • Frontend: React with TypeScript
  • Database: PostgreSQL
  • Deployment: Railway
  • Authentication: JSON Web Tokens (JWT) for secure multi-user login
  • Email: Mailgun for transactional email notifications

Role & Responsibilities:
As the Full-Stack Engineer, I set up the repositories, established the React TypeScript frontend infrastructure, and implemented the RESTful API and Django backend. I also integrated email support and file storage functionality. A UX specialist handled the main frontend content and design decisions, while I focused on implementing the underlying technical functionality and ensuring the system worked end-to-end.

Challenges

  • Separating authentication from user management: I initially integrated JSON Web Token (JWT) authentication with user CRUD functionality in a single file. To improve maintainability and clarity, I split the code into separate modules for authentication and user operations, which simplified debugging and made the system easier to extend.
  • Database test data and environment setup: To test admin functionality, I populated the database with multiple test users to simulate real-world scenarios, including approving and promoting users. The frontend developer’s sandbox didn’t have this data, which made it impossible for her to demonstrate certain admin features during demos. Standardizing on a shared test dataset ensured everyone could see the app behave as intended and simplified validation of complex workflows.
  • Email delivery delay: While integrating Mailgun for notifications, sending emails initially failed with opaque server errors. Even running a basic Python script to test email sending didn’t work, because Django/Python could not connect to the Mailgun server. The next day, emails were delivered successfully, indicating the issue was due to DNS propagation delays rather than any problem with the implementation.

Impact
The app provides MENSA members with a centralized platform for networking, improving engagement and connectivity. Administrators can monitor activity trends, helping the organization understand member interactions. The project serves as a solid example of full-stack development, problem-solving under constraints, and delivering a maintainable and scalable solution.

Lessons Learned

  1. Move to Redux for state management: While the app worked well with local state in React, centralizing state with Redux would simplify data flow across components, reduce duplication, and make future feature additions easier to implement.
  2. Plan for scalable file storage early: Using Railway’s local file storage worked for development, but allocating budget for AWS S3 (or a similar cloud storage solution) from the start would have streamlined file handling, improved reliability, and reduced migration effort later.