Courses

[NEW] Laravel Project PROCESS: From Start to Finish

Project Description to Actionable Plan and DB Schema

Summary of this lesson:
- Creating initial database structure
- Setting up migrations and models
- Converting client requirements into technical plan
- Sending DB schema to client for validation

First, let's talk a bit about project management. Boring, I know. We want to dive into coding, right? But that's exactly the most typical mistake developers make, especially freelancers.

The beginning stage of the project is when the client is still actively involved, and that's the best chance for us to ask them questions and minimize the risks of something unplanned happening.

When starting the project, my first goal is to turn the client's initial description into an actionable plan with milestones.

So, here's the description of the project client (me) gave to us.


Project Description from Client

LinksLetter: General idea

LinksLetter will be a system for people to manage their bookmark links saved from the internet and then compile them into newsletter issues to be sent via external email campaign provider(s).

No need for homepage, it will be a semi-internal system, so the homepage should immediately redirect to the login form.

Also no need for any fancy design, any pre-built template or kit will be fine, as long as it doesn't look amateur.

The system will work with three "objects":

  • Users
  • Links
  • Newsletter issues

Users

Users can register, login and reset password: typical Auth functionality.

There should be functionality to register / log in with Google.

After logging in, there should be two menu items: Links and Issues. More on them below.

Managing Links

Users can add links either via manual CRUD form.

Links should have these fields:

  • URL (string, required)
  • Title (string, required)
  • Description (text, optional)
  • Issue ID (nullable, foreign key to "issues", null until assigned to a specific issue)
  • Position (integer, optional, later automatically assigned but reorderable)
  • User ID (foreign key to users, automatically filled-in)

Creating Newsletter Issues

Issue, or in other words, newsletter "campaign" or "curated list" is a list of links to be sent to the newsletter subscribers.

The menu "Issues" should contain...

The full lesson is only for Premium Members.
Want to access all 16 lessons of this course? (105 min read)

You also get:

  • 69 courses (majority in latest Laravel 11)
  • Premium tutorials
  • Access to repositories
  • Private Discord