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 AuthenticationCustom user model built using Django's AbstractUser, enabling secure signup, login, and logout via server-side rendering with Django templates and forms
  • Profile ManagementUsers can update their profile details, including hobbies, passwords, and personal information such as name, email, and date of birth
  • Dynamic Hobby ManagementA database-driven hobby list that allows users to add new hobbies dynamically, making them available to other users
  • Social MatchingDisplays users with the most similar hobbies using dynamic matching algorithms to promote connections based on shared interests
  • Age Range FilteringAJAX-powered filtering of users by age range, with results presented efficiently using pagination
  • Friend RequestsProvides functionality for sending, approving, and managing friend requests, with reactive updates for a seamless user experience
  • Vue FrontendUtilizes Vue Router for page navigation and Pinia for state management, ensuring a responsive and interactive single-page application (SPA)
  • AJAX with Fetch APIImplements async/await for handling AJAX requests, ensuring smooth and efficient communication between the frontend and backend
  • Type SafetyIncorporates TypeScript for the frontend and Python type hints for the backend, supporting robust static type checking and code quality
  • Automated TestingComprehensive 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 TestingSelenium was used for testing the entire user experience, ensuring reliability and scalability
  • DeploymentSuccessfully deployed on the EECS OpenShift platform, meeting all deployment criteria and ensuring accessibility

Technologies

Django
Vue
Python
Selenium
Tailwind CSS

Links

Hover over the following links for a quick preview

Images

Project image
Project image
Project image
Project image
Project image
Project image
Project image