Giter Club home page Giter Club logo

reviews's People

Contributors

arwaawan avatar chx2 avatar djamesfar avatar drewroberts avatar huntermontell avatar joshtorres avatar kylebarney avatar pdbreen avatar phuclh avatar prestontoor avatar rappasoft avatar wolfrednicolas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

reviews's Issues

Analytics

Google Analytics data will be stored daily for both the application's Companies (#4) and location-specific data for those Companies with multiple Locations (#5).

Competitors

This will essentially be a pivot table with a custom name between Locations (#5) and Places (#6) so each location can choose which of the other Places in their Market (#3) are their competitors.

YouTube Analytics

For the application's Companies (#4) that have YouTube channels (Accounts #20) we will save the daily total analytics for the channel.

Industries

Every Company (#4) and every Place (#6) will belong to an industry. I would like these to match up with the categories from Google Places so they can be automatically assigned when new Places are created and when Places are updated in GMB. Companies will just use the primary category, but I would also like to allow multiple Industry categories to be listed for Places just like in GMB, so it will have a Many to Many relationship.

Webpages

Webpages are exact URL's in search results (Rankings #15) that will be stored in a different table, so their movement in the Rankings will be documented. They belong to a Domain (#11) but in many cases, the Domain will not have a Company (#4) as when TripAdvisor, Yelp, and other generic websites appear in the Rankings.

Reviews

Reviews are pulled from Google My Business daily for each Location (#5). There are additional fields for the review to allow positive reviews to be highlighted as testimonials on the Company's website.

Domains

Domains will have a One to One relationship with Companies (#4) and also contain additional fields from the Domain RDAP API and we will use a scraper to store the Domain's Favicon and other information.

Search Volume

Search Volume for Keywords (#14) will be pulled monthly from estimates on both SerpAPI and Google Search Ads. The most accurate will be from Companies (#4) that show in the first few results on the first page of Google results and will be pulled from Google Search Console.

Documentation

Need to update the README file to keep it current with package features and document how to best utilize it in a Laravel project.

Timezones

I prefer to have a separate table with each of the US timezones and allow them to have a readable field (EST, CST, etc.) In addition to the PHP timezone and any JavaScript equivalent we will need. Each Market (#3) and Place (#6) will have a timezone_id stored for it. I imagine there is a way to fetch the timezone somewhere with a zip code.

Locations

Locations for the application will be stored with a Google My Business ID and the GMB Account. They must also belong to a Market (#3) and a Company (#4) and also have a slug in case multiple locations are in a market for the application's Company.

Companies

Companies will be either the company for the application or a competitor company. They will be used for Locations and for Places. They must have a unique website domain.

Accounts

Accounts belong to a Company (#4) and are the social media accounts for that business. They include the main Facebook page, Twitter account, YouTube channel, Instagram account, etc.

Location-specific Facebook pages will just be saved on the Places (#6) model. Locations (#5) will all have Places as a One to One relationship, so we don't need to duplicate it in both tables.

Snapshots

Snapshots are taken on the first of each month and once a week (I prefer Wednesdays) for each active Place (#6) to get the review count and average rating. This allows changes to be tracked over time and comparisons to be made.

Permissions Migrations

  • bump dependency of tipoff/authorization to 2.5.0
  • Verify all permissions in the policies are included in the package permissions migration
  • Add arrays after every permission in that migration except delete to include the ‘Owner’ role
  • Also add the ‘Staff’ role to the array for every view permission

example from the Fees package:

    public function up()
    {
        $permissions = [
             'view fees' => ['Owner', 'Staff'],
             'create fees' => ['Owner'],
             'update fees' => ['Owner'],
             'delete fees' => [],   // Admin only
        ];

        $this->createPermissions($permissions);
    }

Tests

Need to implement tests for every feature of the package.

Places

Places are the tracked Google Places that will require a Google Places ID and the remainder of the details will be pulled by the API. When these are pulled, a Company (#4) will be created for each new domain name. They will also belong to a Market (#3) and a State (#2) which will both need to computed based on the address.

PageSpeeds

PageSpeed Insights will be pulled for each Domain (#11) on the first of the month.

Tests

Need to implement tests for every feature of the package.

Rankings

SEO rankings will be fetched for Local Keywords (#14) with SerpApi and stored in the database. These will be pulled on the first of the month and once weekly (I prefer Wednesdays).

Reviews API

Each Location (#5) will have an API endpoint for Reviews (#8) that will return the selected reviews that will be used as testimonials on the Company's (#4) website.

Keywords

Keywords are defined for each Company (#4) and each Location (#5) by Users and by the Google Search Console API. They are stored lowercase and need to have the ability for slight variations to be grouped together. They will also have categories such as Branded, Generic, & Local.

Insights

Insights will be pulled daily from Google My Business and stored for each Location (#5).

Documentation

Need to update the README file to keep it current with package features and document how to best utilize it in a Laravel project.

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.