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
Links
Hover over the following links for a quick preview