Hobby Hive

Description

A dynamic, user-friendly single-page web application (SPA) built with Django and Vue, offering features like user authentication, profile management, and hobby-based social matching. The app includes AJAX-powered age filtering, friend requests, and dynamic hobby management. Leveraging TypeScript and Python type hints, it ensures type safety and code quality. Comprehensive testing, including Selenium-based end-to-end tests, ensured reliability, while deployment on EECS OpenShift met all accessibility requirements.

Features

  • User Authentication - Custom user model built using Django's AbstractUser, enabling secure signup, login, and logout via server-side rendering with Django templates and forms
  • Profile Management - Users can update their profile details, including hobbies, passwords, and personal information such as name, email, and date of birth
  • Dynamic Hobby Management - A database-driven hobby list that allows users to add new hobbies dynamically, making them available to other users
  • Social Matching - Displays users with the most similar hobbies using dynamic matching algorithms to promote connections based on shared interests
  • Age Range Filtering - AJAX-powered filtering of users by age range, with results presented efficiently using pagination
  • Friend Requests - Provides functionality for sending, approving, and managing friend requests, with reactive updates for a seamless user experience
  • Vue Frontend - Utilizes Vue Router for page navigation and Pinia for state management, ensuring a responsive and interactive single-page application (SPA)
  • AJAX with Fetch API - Implements async/await for handling AJAX requests, ensuring smooth and efficient communication between the frontend and backend
  • Type Safety - Incorporates TypeScript for the frontend and Python type hints for the backend, supporting robust static type checking and code quality
  • Automated Testing - Comprehensive test coverage includes: User account creation and login, profile editing and hobby management, age filtering and user matching features end-to-end friend request workflows.
  • End-to-End Testing - Selenium was used for testing the entire user experience, ensuring reliability and scalability
  • Deployment - Successfully deployed on the EECS OpenShift platform, meeting all deployment criteria and ensuring accessibility

Technologies

Images