douglasakula

douglasakula

Member Since 2 Years Ago

Nairobi

Experience Points
70,590
Total
Experience

4,410 experience to go until the next level!

In case you were wondering, you earn Laracasts experience when you:

  • Complete a lesson — 100pts
  • Create a forum thread — 50pts
  • Reply to a thread — 10pts
  • Leave a reply that is liked — 50pts
  • Receive a "Best Reply" award — 500pts
Lessons Completed
532
Lessons
Completed
Best Reply Awards
24
Best Reply
Awards
  • start-engines Created with Sketch.

    Start Your Engines

    Earned once you have completed your first Laracasts lesson.

  • first-thousand Created with Sketch.

    First Thousand

    Earned once you have earned your first 1000 experience points.

  • 1-year Created with Sketch.

    One Year Member

    Earned when you have been with Laracasts for 1 year.

  • 2-years Created with Sketch.

    Two Year Member

    Earned when you have been with Laracasts for 2 years.

  • 3-years Created with Sketch.

    Three Year Member

    Earned when you have been with Laracasts for 3 years.

  • 4-years Created with Sketch.

    Four Year Member

    Earned when you have been with Laracasts for 4 years.

  • 5-years Created with Sketch.

    Five Year Member

    Earned when you have been with Laracasts for 5 years.

  • school-session Created with Sketch.

    School In Session

    Earned when at least one Laracasts series has been fully completed.

  • welcome-newcomer Created with Sketch.

    Welcome To The Community

    Earned after your first post on the Laracasts forum.

  • full-time-student Created with Sketch.

    Full Time Learner

    Earned once 100 Laracasts lessons have been completed.

  • pay-it-forward Created with Sketch.

    Pay It Forward

    Earned once you receive your first "Best Reply" award on the Laracasts forum.

  • subscriber-token Created with Sketch.

    Subscriber

    Earned if you are a paying Laracasts subscriber.

  • lifer-token Created with Sketch.

    Lifer

    Earned if you have a lifetime subscription to Laracasts.

  • lara-evanghelist Created with Sketch.

    Laracasts Evangelist

    Earned if you share a link to Laracasts on social media. Please email [email protected] with your username and post URL to be awarded this badge.

  • chatty-cathy Created with Sketch.

    Chatty Cathy

    Earned once you have achieved 500 forum replies.

  • lara-veteran Created with Sketch.

    Laracasts Veteran

    Earned once your experience points passes 100,000.

  • 10k-strong Created with Sketch.

    Ten Thousand Strong

    Earned once your experience points hits 10,000.

  • lara-master Created with Sketch.

    Laracasts Master

    Earned once 1000 Laracasts lessons have been completed.

  • laracasts-tutor Created with Sketch.

    Laracasts Tutor

    Earned once your "Best Reply" award count is 100 or more.

  • laracasts-sensei Created with Sketch.

    Laracasts Sensei

    Earned once your experience points passes 1 million.

  • top-50 Created with Sketch.

    Top 50

    Earned once your experience points ranks in the top 50 of all Laracasts users.

Level 15
70,590 XP
Nov
14
5 days ago
Activity icon

Replied to Working With Email Aliases

Okay. I see.

Table email
id
email
token
....
datecreated
Table email_alias
id
email_id
email_alias
datecreated

So for each entry in table email_alias will havea foreign key in table email. So that a simple join of email.id and email_alias.email_id gives you not just the email but the aliases as well.

Something along those lines.

Activity icon

Replied to Working With Email Aliases

You can have a primary_email and an alias_email table. The relationship between a primary email and and alias_email table would be 1 to many. Login tokens would then be issued based on a check on either the primary email or related email aliases

Nov
13
6 days ago
Activity icon

Replied to I'm Trying To Integrate Google's API And Create A Calendar/event On Demand

Have you enabled the APIs within google console ? - Though this should throw an error on the application on permissions.

Nov
09
1 week ago
Activity icon

Awarded Best Reply on What Do I Response After User Registered With API?

IMO. For registration - the user object will do. (It might include the access token in some instances). the access token is optional because the registration use case is not logging the user into the account.

For login API call - its ideal to return the access token at the very minimum because this will be required to validate subsequent requests after login is successful.

Activity icon

Replied to What Do I Response After User Registered With API?

IMO. For registration - the user object will do. (It might include the access token in some instances). the access token is optional because the registration use case is not logging the user into the account.

For login API call - its ideal to return the access token at the very minimum because this will be required to validate subsequent requests after login is successful.

Nov
08
1 week ago
Activity icon

Replied to How To Setup Relationship Between User With His Clients, Team Members And Project In Laravel

It shouldn't be hard - if its a many to many relationship - then you need a pivot table to "link" or store the relationship between the entities. If its a one to many relationship - you need a foregin key in one of the tables to reference the primary key in the first table. I see you are doing this already in some of the tables you shared earlier.

Activity icon

Replied to Querying Many To Many With A Pivot Table With Date Column

Your usecase implies you are better of using a non relational db which would store the product as a document with all the information it has. If using relational db for each product - you would have to do subqueries / functions within your models to fetch the data in the format you have shared above

Activity icon

Replied to How To Setup Relationship Between User With His Clients, Team Members And Project In Laravel

Whats the relationship between a user and a subuser ?

Activity icon

Replied to Architecture Of An ERP Software

Your scope is wide and architecture could be diverse especially for an enterprise architecture. I would assume at least you have tiers / layers so we have the database layer (your database), application layer (laravel app) and presentation layer (react) all of them to be hosted on different server or nodes. Such an architecture would mean you expose application layer APIs that will be consumed by the client app. (React).

Now to the issues you have raised.

The most secure login IMO is OTP as it means an 4 or 6 digit code is sent to the user who has to submit it client side for validation server side. If you are paranoid enough about security and users can have gmail accounts then I would consider using gmail authentication into the apps - for reasons such as they have spend years thinking about security and I would therefore ride upon their leanings. They also have alerts when a strange device accesses the email account. If you however control all the user data - then phone number and an OTP that is sent to the users every time they login is secure enough.

On API authentication. - Every request has to be authenticated by a user specific time-bound token supplied in the login request body. Authorization should should also happen across the two layers - client side as well as server side. Ideally when a user logs in - part of response body should be the roles and permission matrix for the user. This can guide the client side implementation on what the user can see or do. Nevertheless the server side implementation should also run the check in its API gateway to validate that the user action is white-listed in the users roles and permission matrix.

Nov
06
1 week ago
Activity icon

Replied to The Term "https:" Is Removed Automatically From Results.

weird ! You are sure title does not have any form of length constraint that could be truncating the characters once they exceed a certain length. Would a title of another randomn string with the same length as the one above truncate it as well ?

Activity icon

Replied to Data Visualization With Large Datasets.

You would at least need to index the database tables - just to improve speed of the application. This is from a performance perspective. The problem set shared above is huge and searching with this level of ambiguity might not yield actionable results. You could specify what your objective, front end tools for visualization you are using and the challenge you have encountered.

Activity icon

Replied to Integrate Video Call, Voice Call With Laravel Application

Twillio has the solution you are looking for unless you already checked it out. - twillio.com

Has resources on the subject as well https://www.twilio.com/blog/initiate-voice-call-laravel-php-twilio-programmable-voice

Nov
05
2 weeks ago
Activity icon

Replied to Any File Storage Laravel Package?

Amazon Web services S3 for file storage. We have laravel support inbuilt

Nov
04
2 weeks ago
Activity icon

Replied to GET Method Is Not Supported For This Route. Supported Methods: PUT.

try run php artisan route:list to see how your routes are resolved - if there is a duplicated route that is overriding your defined GET route

Activity icon

Replied to Help With Firebase Realtime Geolocation Using Vue Js

I think vue is a client side implementation. You would need to consume a server side implementation of firebase realtime geolocation. So you could look at PHP implementations / laravel or node js implementations. Am sure we have some - this will expose APIs that you can call from vue components.

Activity icon

Replied to Querying From First Table Where Table1.column1 Has Table2.column2 As A Substring

First - you need to define the relationship between url and domain table / entities. Is it one to one or one to many. Based on this relationship - it would then be easy to define a query that can fetch the data as you desire - or make this a function within a model for the entities above.

Secondly - since a sub string can be anything or any part of a string - say if the domain is google.com.au - what's are potential sub strings from this domain name. (will need a minimum - say 4 consecutive letters etc) You would be better handling this logic within a function as it would imply first getting all possible sub strings of a domain and doing a query or set of queries to the database with this list of sub strings.

Nov
03
2 weeks ago
Activity icon

Replied to Datetime Picker Not Working In Dynamic Modal

Do you have any error messages on browser inspector. That would be a great place to start debugging from.

Activity icon

Replied to Temporal Database Design, SoftDeletes Or Custom Field

In a relational database context you could index the deleted_at and created_at columns to achieve a faster response time. If you are querying thrashed records everytime - a cache at database or application level would be ideal to reduce overheads.

Activity icon

Awarded Best Reply on Question

If you mean flutter for native mobile apps - then yes - because it can use whichever data store for unique usecases you may have as long as you have a middleware (APIs) that flutter calls which then exposes the data stored in either firestore of cloud sql.

You can use realtime tracking with mysql but you will have to implement change or event management in your code so you can get updates when the data is changing - or by using other platforms like socket.io then expose the functionality to your flutter app via APIs. - But I think you are better using firebase as it updates in realtime when the data changes - and even pushes to the apps that consume the API / are connected to the firebase datastore. Flutter and firebase are both created by google - so we have great support and sample codebases for many usecases around realtime tracking.

Activity icon

Replied to Question

If you mean flutter for native mobile apps - then yes - because it can use whichever data store for unique usecases you may have as long as you have a middleware (APIs) that flutter calls which then exposes the data stored in either firestore of cloud sql.

You can use realtime tracking with mysql but you will have to implement change or event management in your code so you can get updates when the data is changing - or by using other platforms like socket.io then expose the functionality to your flutter app via APIs. - But I think you are better using firebase as it updates in realtime when the data changes - and even pushes to the apps that consume the API / are connected to the firebase datastore. Flutter and firebase are both created by google - so we have great support and sample codebases for many usecases around realtime tracking.

Nov
02
2 weeks ago
Activity icon

Replied to Getting Diffrence From A Range Of Dates In Jquery U.I Datepicker

you need an onchange event on $("#returnDate") that will be triggered when its changed.

Activity icon

Replied to MIT Laravel CMS Project Looking For Some Feedback & Contributors

Great Effort ! Thanks for sharing

Activity icon

Replied to Videojs Layout Issue

That's an issue with the controls. - Do you have any error messages on browsers inspector. Also confirm that the code has the controls parameter added.

Oct
30
2 weeks ago
Activity icon

Commented on Everything You Need To Know About Dotfiles

Great ! Thanks for this

Activity icon

Replied to Database Table Size

It would be great as well to understand the use case - how often do you want to read from or write from the table. What are the use cases after the data is read. / Usecases for writing data to the database. Data storage choices vary primary on use cases. Your usecases could point to use of relational database or nosql databases. etc.

Oct
28
3 weeks ago
Activity icon

Replied to Increasing Max Execution Time In Production Not Working

@zafercuz - Just to be clear - you have full (reasonable) control of production server and it's not running in safe mode - right

Activity icon

Replied to Increasing Max Execution Time In Production Not Working

Try run php --ini to confirm the loaded ini file is the one being edited.

Oct
26
3 weeks ago
Activity icon

Replied to Route MethodeNotAllowed

It means you haven't defined a route called confirmation.store. Or if its defined - you are calling it with a http verb thats not associated with the route - say its a PUT and you are sending a POST or GET.

First step would be to confirm you have the route by running php artisan route:list to confirm the route exists as well as the associated http verb

Activity icon

Awarded Best Reply on Table

@fajar Look at it as entities - say region entity, item entity. The item entity can contain the name and price while the region entity can have the name/title of the region which can be region_1, region_2 etc. All entities will have a primary key. Since you want to place an order - an order table could come in handy. From your explanation above:

order table
 - id
 - item_id
 - region_id

item table
- id
- name
- price

region table
- id
- region_name

You could do payment table as well based on your use case.

Activity icon

Replied to Package Installation And Php Artisan Serve Not Working

Could be you have more than 1 php.ini file - or the one you are editing is not the one being loaded

Run php --ini within your projects directory to verify the php ini file in use

Activity icon

Replied to How I Can Increase My Site DR And DA?

You could start with three things.

First - Install ssl to secure your site. You can get one from your hosting provider or other ssl providers.

Second - You could do is improve page speed based on google metrics - https://developers.google.com/speed/pagespeed/insights/?url=http%3A%2F%2Fsheknowsfinance.com%2F

Third -You could do as well is improve its SEO - you can get a tonne of recommendations here - https://seositecheckup.com/seo-audit/sheknowsfinance.com

Activity icon

Replied to Route [login] Not Defined

Could you run php artisan route:list to see the list of routes within your application and confirm its as expected.

Activity icon

Replied to 404 On Changing To A Specific Wifi Network

Is this on all pages - does it affect all http methods - e.g. get, post etc ?

Is it possible that the network you are using has a proxy server with a whitelist with specific rules for handling http requests for certain domains or ip addresses ?

Activity icon

Replied to I Tried To Run My Old Laravel Project Downloaded From Git Hub And It Throw This Error

Do composer update within the project directory

Oct
25
3 weeks ago
Activity icon

Awarded Best Reply on Sync Data From MS Sql To Mysql (big Data)

To reduce records you have to work with - is it possible to add an updated_at column on your mssql table - so you only pull records that have updated since last time you synced - that would be an ideal sync. If every record changes - such that its either updated or created - then I would consider batch operations at database level using dump files and offload the logic from the application level. An approach can be getting a csv dump of the mssql table and doing a batch insert into the mysql database - All at database level. - Then again - you aren't for insert - so get records that need to be updated - new records would have the timestamp they were created as the updated_at timestamp

Activity icon

Replied to Sync Data From MS Sql To Mysql (big Data)

To reduce records you have to work with - is it possible to add an updated_at column on your mssql table - so you only pull records that have updated since last time you synced - that would be an ideal sync. If every record changes - such that its either updated or created - then I would consider batch operations at database level using dump files and offload the logic from the application level. An approach can be getting a csv dump of the mssql table and doing a batch insert into the mysql database - All at database level. - Then again - you aren't for insert - so get records that need to be updated - new records would have the timestamp they were created as the updated_at timestamp

Activity icon

Replied to How To Make Multi Users Approval Order

@ibrahimks The service - if its an entity needs to have a table / has a table - then you need to add columns to the database for first_approval, second_approval etc. This will reflect as properties on the service model as well. Rules for when to display will be based on whether or not the column have a value or not.

Activity icon

Replied to Table

@fajar Look at it as entities - say region entity, item entity. The item entity can contain the name and price while the region entity can have the name/title of the region which can be region_1, region_2 etc. All entities will have a primary key. Since you want to place an order - an order table could come in handy. From your explanation above:

order table
 - id
 - item_id
 - region_id

item table
- id
- name
- price

region table
- id
- region_name

You could do payment table as well based on your use case.

Oct
24
3 weeks ago
Activity icon

Awarded Best Reply on Difference Between Shopify And Woocommerce?

IMO - Shopify - if client can pay the monthly fee as well as pay some more for additional apps from shopify partners. - It's pretty stable and ranks highly compared to other ecommerce platforms. For woocommerce and other open source solutions - depends a lot with how its customized by the developer. (Most developers prefer open source - due to control and having options to do anything ).

Activity icon

Replied to Difference Between Shopify And Woocommerce?

IMO - Shopify - if client can pay the monthly fee as well as pay some more for additional apps from shopify partners. - It's pretty stable and ranks highly compared to other ecommerce platforms. For woocommerce and other open source solutions - depends a lot with how its customized by the developer. (Most developers prefer open source - due to control and having options to do anything ).

Activity icon

Replied to Docker Series

+1 of course

Oct
22
4 weeks ago
Activity icon

Replied to Hosting Two Laravel Projects On One Domain Or Sub-domain?

lets say the domain is example.com. How would you want it ? - example.com/siteone and example.com/sitetwo or what exactly would you like to accomplish ?

Activity icon

Replied to Package Installation And Php Artisan Serve Not Working

Hey @codemandavid - I saw a bunch of extensions from the logs you shared above - ext-uopz, ext-soap

It should work when this extensions are available for the packages laravel is trying to install. Also share the new error messages you are getting after fixes done on enabling extensions - so we can rule out if its an extensions issue.

Activity icon

Replied to How Can I Access The Images Of A Relational Database In Vuejs?

If images are stored on a relational db - you need them to be queried and served to the front end so vue js can consume them. So what you need is backend logic to get the image and process it for vuejs. To do this you can use laravel or nodejs. How are you saving the images in the database ? - base64 encoded or blob file ?

Activity icon

Replied to Package Installation And Php Artisan Serve Not Working

@codemandavid Edit your php.ini file and enable list of extensions laravel requires e.g. ext-intl then remember to restart apache server / xampp and it should work perfectly

Oct
21
4 weeks ago
Activity icon

Replied to Laravel, How To Avoid Params In Url

Is your end goal to have SEO friendly urls or to block web crawlers from indexing your website.

For the former - In your routes file - you can define urls to your controllers so that the query parameters are variables in the urls and you wont have to append the ? in the url.

For the latter - you can edit / add a robots.txt file to block crawlers from indexing your website.

Activity icon

Replied to Query Consumes Too Many Resources

A join as well of timeline and profilo as well would ensure you hit the DB once as opposed to two times in above scenario