GithubHelp home page GithubHelp logo

poudelsaroj / doggonation Goto Github PK

View Code? Open in Web Editor NEW

This project forked from akashgreninja/doggonation

0.0 0.0 0.0 41.79 MB

Social Media site made using flask , React and a lot of technologies

License: MIT License

JavaScript 0.49% Python 99.00% C 0.21% PowerShell 0.10% CSS 0.18% HTML 0.01% Batchfile 0.01% Solidity 0.01%

doggonation's Introduction

Doggonation - Where Dogs and Their Owners Unite: Welcome to Doggonation (Looking for frontend devs)

This Project is in Progress so the ui does not fully work as required please contact me via my email id on my profile if you need any help

Doggonation is an innovative social media platform that caters to the discerning sensibilities of dog owners and enthusiasts. The app is designed to connect canine aficionados from all walks of life, enabling them to share photographs, videos, and anecdotes of their beloved furry friends. It also features an array of cutting-edge functionalities that facilitate a safe and enjoyable user experience.

Features ๐Ÿถ

  • Create a Profile for Your Pooch and Connect with Other Canine Lovers
  • Share Photographs and Videos of Your Furry Friend and Follow Other Dogs
  • Discover Inspiring and Engaging Dog-Related Content, Including Articles, Videos, and Products
  • Join Groups and Communities Based on Dog Breeds, Interests, and More
  • Find Local Dog-Friendly Places, Such as Parks, Cafes, and Shops
  • Chat with Other Dog Owners and Forge New Canine Friendships
  • ๐Ÿค– Use the Roberto Model for Advanced Text Sentiment Analysis to Ensure Appropriate Content for All Users
  • ๐Ÿ” Employ Image Analysis to Detect and Prevent Inappropriate Content
  • Firebase auth for Google and Facebook

Firebase auth for Google and Facebook

This project utilizes Firebase Authentication for user authentication, specifically for Google and Facebook sign in. Firebase Authentication provides a secure and easy-to-use way to authenticate users, and supports multiple authentication providers, including email and password, phone number, and third-party providers like Google and Facebook.

To implement Firebase Authentication in this project, we followed the guidelines and best practices outlined in the Firebase Authentication documentation. You can find more information about Firebase Authentication and how to use it in your own projects in the official Firebase Authentication documentation.

We believe that Firebase Authentication provides a robust and reliable authentication solution that meets the needs of our project and our users. By leveraging Firebase Authentication, we can ensure that user data is secure and protected, and that our application is easy to use and access for all of our users.

here are the docs you can refer to use firebase auth

Technologies

Doggonation is built using the following technologies:

  • React with Vite for the frontend
  • Redux for state Management
  • Flask for the backend API
  • Azure MySQL for the SQL database hosting
  • Azure App Services for hosting the backend
  • Azure Cognitive Services for translation
  • CI/CD using GitHub Actions

CI/CD using GitHub Actions

This repository implements continuous integration and continuous deployment (CI/CD) pipelines for frontend React and backend Flask code, using GitHub Actions. GitHub Actions is a platform that allows for the creation of automated workflows, including continuous integration and deployment, for software development.

Workflows

The repository has two main workflows:

1. Frontend React Workflow

The workflow runs whenever a pull request is created or updated. It checks the frontend React code for linting errors and runs unit tests. If any of the tests fail, the workflow will fail and prevent merging the pull request.

2. Backend Flask Workflow

The workflow runs whenever a pull request is created or updated. It checks the backend Flask code for linting errors and runs unit tests. If any of the tests fail, the workflow will fail and prevent merging the pull request.

Continuous Integration

By using GitHub Actions, we can ensure that every pull request to the repository is automatically checked for code quality and unit tests. This means that any errors can be detected early in the development process, saving time and effort in the long run.

Continuous Deployment

Using GitHub Actions, we can also automate the deployment process for our applications. We can set up a workflow that deploys our code to a staging environment for testing and then to production once it has been approved. This ensures that our code is always up-to-date and running smoothly.

CI/CD with GitHub Actions

Using the torchvision library with AlexNet

Introduction

The torchvision library is a popular computer vision library for PyTorch. It provides a set of functions and classes that can be used to easily and efficiently load and preprocess image datasets, as well as pre-trained models for image classification and object detection.

One of the pre-trained models available in torchvision is AlexNet, a deep convolutional neural network that was developed by Alex Krizhevsky, Ilya Sutskever, and Geoffrey Hinton in 2012. AlexNet is known for its outstanding performance on the ImageNet dataset, and it helped to popularize deep learning in computer vision.

The torchvision module is a collection of datasets, models, and transforms for computer vision tasks in PyTorch. One of the pre-trained models included in torchvision is AlexNet, which is a deep convolutional neural network that was introduced in 2012 and won the ImageNet Large Scale Visual Recognition Challenge that year.

AlexNet is designed to classify images into one of 1,000 categories, such as dogs, cats, cars, and so on. The model consists of 5 convolutional layers, 3 fully connected layers, and 1 softmax layer. The input to the model is a 224x224 RGB image.

In our project, we used AlexNet and torchvision to analyze input pictures and determine if they contain a dog or not. Specifically, we fine-tuned the AlexNet model on a dataset of dog images using transfer learning, which allowed us to use the pre-trained weights of the model and train only the last layer on our own dataset.

Using this approach, we were able to achieve high accuracy in classifying images as containing a dog or not. We then used this model to enforce a requirement that user-uploaded pictures must contain a dog in order to be accepted by our application.

By leveraging the power of pre-trained models and transfer learning, we were able to quickly and effectively build a solution for our image analysis needs.

Usage

To use the AlexNet model in your PyTorch project, you can simply import it from torchvision.models:

import torch
import torchvision.models as models

# Load the pre-trained AlexNet model
alexnet = models.alexnet(pretrained=True)

# Set the model to evaluation mode
alexnet.eval()

# Use the model to make predictions on your data
outputs = alexnet(inputs)

NLTK (Natural Language Toolkit)

NLTK (Natural Language Toolkit) is a Python library that provides various tools and resources for natural language processing (NLP). It offers easy-to-use interfaces to perform tasks such as tokenization, stemming, part-of-speech tagging, and more.

Why NLTK?

In our project, we utilize NLTK for its powerful text processing capabilities. Specifically, we leverage NLTK to fetch the most commonly used tags from posts and display relevant posts based on those tags. By using NLTK's tokenization and part-of-speech tagging functionality, we can extract important keywords or tags from the text and analyze their frequency to determine the most common ones.

By incorporating NLTK into our project, we can enhance the user experience by providing a curated display of posts that are relevant to specific topics or tags. NLTK's comprehensive toolkit and resources make it an ideal choice for performing various NLP tasks, allowing us to extract meaningful insights from textual data.

To learn more about NLTK and explore its extensive capabilities, refer to the NLTK documentation.

Text Speech Analysis

Sentiment Analysis

In this project, we performed text speech analysis using various natural language processing techniques to extract insights from textual data. We utilized tools such as sentiment analysis, topic modeling, and named entity recognition to gain a deeper understanding of the language used in our dataset.

Our sentiment analysis, as depicted in the above image, revealed a generally positive sentiment towards our product. This information can be used to inform marketing strategies and improve overall customer satisfaction.

Here's another image that shows the word cloud generated from our dataset:

Word Cloud

Translation with Azure Cognitive Services

  • Provides translation capabilities for multiple languages using Azure Cognitive Services.
  • Utilizes the translation API to seamlessly translate text.

Razorpay Payment Gateway Integration

  • Integrates the Razorpay payment gateway for secure and convenient online payments.
  • Supports various payment methods and ensures a smooth payment experience for users.

IP Blocker for Spam Prevention and Security

  • Implements an IP blocker mechanism to prevent access from known spamming IP addresses.
  • Enhances security by mitigating potential threats and unauthorized access attempts.

Real-time Communication with Flask-SocketIO

Flask-SocketIO is an extension for Flask that allows you to easily implement real-time, bidirectional communication between the server and the client using Socket.IO.

With Flask-SocketIO, you can create applications with real-time features such as chat systems, live updates, and notifications. It provides a seamless integration of Socket.IO into your Flask application, simplifying the implementation of real-time communication.

Key features and advantages of Flask-SocketIO:

  • Real-time bidirectional communication: Flask-SocketIO enables real-time communication channels between the server and the client, allowing instant data transfer.
  • Event-driven architecture: It provides an event-driven programming model where you can define event handlers on the server and client side to handle various events, such as receiving messages or broadcasting updates.
  • Scalability: Flask-SocketIO is designed to handle a large number of concurrent connections efficiently, making it suitable for applications with high traffic and real-time requirements.
  • Compatibility: It works seamlessly with Flask and integrates well with other Flask extensions and libraries, allowing you to leverage the rich Flask ecosystem.
  • Support for fallback options: Flask-SocketIO includes built-in support for fallback options, ensuring compatibility with older browsers that do not support WebSocket, by falling back to other transport mechanisms such as long-polling.

To use Flask-SocketIO, you need to install the Flask-SocketIO package and import the necessary classes and functions in your Flask application. Then, you can define routes and event handlers to handle incoming socket events from the client and emit events back to the client.

For more details on how to use Flask-SocketIO and its various features, refer to the official Flask-SocketIO documentation.

Getting Started

To get started with this project, follow the instructions below.

Frontend

  1. Navigate to the frontend folder:
  2. cd frontend
  3. Install the required dependencies:
  4. npm install
  5. Start the frontend development server:
  6. npm run start

The frontend application will be running at http://localhost:3000.

Backend

  1. Navigate to the backend folder:
  2. cd backend
  3. Activate the virtual environment (if using):
  4. source venv/bin/activate
  5. Install the required Python packages:
  6. pip install -r requirements.txt
  7. Start your XXAMP server.
  8. Import the provided sample database (sample_db.sql) into your database server.
  9. Run the backend server:
  10. python app.py

The backend server will be running at http://localhost:3003.

Make sure to configure the necessary environment variables and update the configuration files as per your requirements.

Feel free to modify and adapt these steps based on your specific setup and environment.

License ๐Ÿ“

Doggonation is an open source project and is available under the MIT License.

โค๏ธ Thanks to all the contributors

๐Ÿš€๐Ÿš€ Thanks to all the contributors who have dedicated their time and expertise to improve and enhance Doggonation. Their contributions are invaluable in shaping the project and making it a success.

๐Ÿš€๐Ÿš€ Join Doggonation, where dogs and their owners unite, and be part of the journey in building a vibrant social media platform for the dog-loving community. Together, let's create an engaging and enjoyable space where dogs and their stories can be celebrated.

doggonation's People

Contributors

akashgreninja avatar 2deadmen avatar effdubois avatar tuhinaww avatar harshsingh32 avatar shanvijha30 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.