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






