Skip to content

This is a dynamic social networking platform project powered by Django and Vue.js. Crafted with Tailwind CSS, ensures sleek and intuitive user interfaces. Users can control the privacy of their posts, fostering a personalized secure social environment.

Notifications You must be signed in to change notification settings

igor32648/django-vue-socialnetwork

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Goiaba: The Social Networking Platform

Captura de tela 2024-02-24 093938

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.

Features

User Profiles

  • Create Profiles: Users can easily create personalized profiles with customizable details and profile pictures.

Captura de tela 2024-02-24 094039

  • Profile Management: Users have full control over their profiles, including editing personal information and updating profile pictures.

Social Connectivity

Captura de tela 2024-02-24 093602

  • Friendship Management: Users can add, remove, and manage friends within the platform.

Captura de tela 2024-02-24 113258

  • Friend Recommendations: Socialite intelligently suggests potential friends based on common interests and connections.

Captura de tela 2024-02-24 093321

  • Friend Notifications: Receive notifications when new friend requests are sent or accepted.

Captura de tela 2024-02-24 113246

  • Like Posts: Users can express their appreciation by liking posts made by friends.

Content Sharing

  • Post Creation: Users can share their thoughts, experiences, and photos by creating posts.

Captura de tela 2024-02-24 112234

  • 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 Communication

Captura de tela 2024-02-24 094143

  • 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.

Captura de tela 2024-02-24 112739 Captura de tela 2024-02-24 112756

  • 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.

Features Powered by Python Scripts

Captura de tela 2024-02-24 094117

Trending Topics and Suggested Friends

  • 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.

Captura de tela 2024-02-24 094756

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.

Responsive Design

Captura de tela 2024-02-24 103740 Captura de tela 2024-02-24 103808 Captura de tela 2024-02-24 103822

  • 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.

Dependencies

Frontend

  • 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.

Backend

  • 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.

Project Foundation and Customization

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.

Planned Features

  1. 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.
  2. 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.

Installation and Running the Code

Installation

  1. Clone the repository: git clone https://github.com/igor32648/django-vue-socialnetwork.git
  2. Navigate to the backend directory: cd django_goiaba
  3. Install backend dependencies: pip install -r requirements.txt
  4. Navigate to the frontend directory: cd vue_goiaba
  5. Install frontend dependencies: npm install

Running the Code

  1. Start the Django server at the backend directory: python manage.py runserver
  2. Start the Vue frontend at the frontend directory: npm run server
  3. Access the application at http://localhost:5173 in your web browser.

Running Database Scripts

To update the trending topics and friend suggestions in the database, follow these steps:

  1. Open your terminal.

  2. Navigate to the backend directory of the project: cd django_goiaba

  3. 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.

  4. 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.

About

This is a dynamic social networking platform project powered by Django and Vue.js. Crafted with Tailwind CSS, ensures sleek and intuitive user interfaces. Users can control the privacy of their posts, fostering a personalized secure social environment.

Topics

Resources

Stars

Watchers

Forks