Goiaba is a modern and feature-rich social networking platform that enables users to connect, share, and interact in a vibrant online community. Leveraging the power of Django 5.0.2 and Vue.js 3.4.1, Goiaba offers a seamless user experience with a plethora of functionalities tailored for today's social media enthusiasts. The design is crafted with Tailwind CSS 3.4.1, ensuring sleek and intuitive user interfaces.
- Create Profiles: Users can easily create personalized profiles with customizable details and profile pictures.
- Profile Management: Users have full control over their profiles, including editing personal information and updating profile pictures.
- Friendship Management: Users can add, remove, and manage friends within the platform.
- Friend Recommendations: Socialite intelligently suggests potential friends based on common interests and connections.
- Friend Notifications: Receive notifications when new friend requests are sent or accepted.
- Like Posts: Users can express their appreciation by liking posts made by friends.
- Post Creation: Users can share their thoughts, experiences, and photos by creating posts.
-
Commenting: Engage in conversations by commenting on posts made by friends.
-
Media Sharing: Share photos and images to express yourself visually.
-
Notification System: Get notified of new interactions, including comments on your posts, friend requests, and post likes.
- Private Messaging: Send and receive private messages to communicate directly with friends. Enjoy real-time private conversations with friends in a secure and private chat environment.
- Private Posts: Goiaba empowers users with the ability to choose the privacy settings for their posts, enabling them to decide whether a post should be public or visible only to friends. This feature provides advantages such as content control, selective sharing, a customized experience, and enhanced privacy, fostering a safer and more personalized social networking environment.
- Trending Topics: The platform dynamically identifies and displays trending topics using Python scripts running in the backend. These scripts analyze user interactions and post content to determine the most popular discussions across the platform.
- Suggested Friends: Socialite provides personalized friend recommendations by running Python scripts in the backend. These scripts utilize algorithms to suggest potential friends based on common interests, mutual connections, and user activity patterns.
The utilization of Python scripts in the backend enhances the platform's functionality by delivering real-time insights and recommendations to users, fostering engagement and community growth.
- Mobile-Friendly: Socialite features a responsive design, ensuring seamless user experience across various devices, including smartphones and tablets.
- Adaptable Layout: The interface adapts gracefully to different screen sizes, maintaining usability and aesthetics.
- Vue.js (Version 3.4.1): A progressive JavaScript framework used for building user interfaces. The latest version was utilized for enhanced performance and feature support.
- Vite (Version 5.0.11): A fast build tool for modern web development. Vite was employed to streamline the development process and improve project efficiency.
- Tailwind CSS (Version 3.4.1): A utility-first CSS framework that provides a set of pre-designed components and utilities, allowing for rapid and consistent styling across the application.
- Django Framework: Goiaba backend was developed using Django version 5.0.2.
- rest_framework: Django REST framework for building Web APIs.
- rest_framework_simplejwt: Provides JSON Web Token authentication support for Django REST framework.
- corsheaders: Handles Cross-Origin Resource Sharing (CORS) to allow secure communication between the backend and frontend components.
Goiaba was built based on the 12-hour tutorial series by Code With Stein on YouTube, but also underwent custom enhancements to ensure a seamless user experience. These enhancements include optimizing all screens for mobile devices and tweaking the UI with modified button styles and design elements, enhancing usability and visual appeal.
- Dark Mode: Implement an option for users to switch between light and dark themes to enhance accessibility and user experience, catering to varying preferences and environments.
- Splash Screen: Develop a welcoming splash screen to appear before the login screen, providing users with essential information about the platform, promotions, or updates, and enhancing the overall user onboarding experience.
- Clone the repository:
git clone https://github.com/igor32648/django-vue-socialnetwork.git
- Navigate to the backend directory:
cd django_goiaba
- Install backend dependencies:
pip install -r requirements.txt
- Navigate to the frontend directory:
cd vue_goiaba
- Install frontend dependencies:
npm install
- Start the Django server at the backend directory:
python manage.py runserver
- Start the Vue frontend at the frontend directory:
npm run server
- Access the application at
http://localhost:5173
in your web browser.
To update the trending topics and friend suggestions in the database, follow these steps:
-
Open your terminal.
-
Navigate to the backend directory of the project:
cd django_goiaba
-
Run the following commands:
python scripts/generate_friend_suggestions.py
This command will generate friend suggestions based on user interactions and activity patterns.
python scripts/generate_trends.py
This command will generate trending topics by analyzing post content and user interactions.
-
After running these commands, the database will be updated with the latest trending topics and friend suggestions, enhancing the user experience on the platform.
It's recommended to run these scripts periodically to keep the trending topics and friend suggestions up to date.