Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Building a Real-Time Logistics App with Strapi and Angular: A 7-Part Series Guide Using TypeScript, Prisma, PostgreSQL, and GraphQL #1466

Open
1 task done
Okeke12nancy opened this issue Jun 11, 2024 · 7 comments
Assignees
Labels
Advanced Expertise In progress Tutorial being created

Comments

@Okeke12nancy
Copy link

What is your article idea?

Part 1: Setting Up Your Angular Frontend

  • Installing and configuring Angular and TypeScript.
  • Initial project setup and creating the basic structure for your logistics app.

Part 2: Designing the User Interface in Angular

  • Creating components for the customer and courier interfaces.
  • Implementing responsive design and navigation for a seamless user experience.

Part 3: Developing Angular Services for API Interaction

  • Setting up Angular services to interact with the GraphQL API.
  • Creating services for managing customers, couriers, and orders data.

Part 4: Setting Up Your Strapi Backend

  • Installing and configuring Strapi, Prisma, PostgreSQL, and GraphQL.
  • Initial project setup and configuration for the backend.

Part 5: Designing and Implementing Data Models

  • Creating data models for customers, couriers, and orders using Prisma and PostgreSQL.
  • Setting up database relationships and migrations.

Part 6: Building the GraphQL API in Strapi

  • Creating a robust GraphQL API with Strapi to handle data operations.
  • Implementing CRUD operations for customers, couriers, and orders.

Part 7: Implementing Order Assignment Logic and Deployment

  • Developing the logic to automatically assign orders to the nearest courier.
  • Optimizing the app for scalability and deploying it to a cloud platform.

What are the objectives of your article?

To teach readers how to build a logistic application that is efficient and scalable

What is your expertise as a developer or writer?

Advance

What type of post is this?

Tutorial

Terms & Conditions

  • I have read the Write for the Community program guidelines.
@Theodore-Kelechukwu-Onyejiaku
Copy link
Collaborator

Hi @Okeke12nancy ,

This looks great! However, your outline seems to only include the basics of any Strapi app with any frontend technology.

Can we make this a full-blown app? Perhaps include real time location tracking, geo-location with map features, real-time notification with web socket, and any other cool technologies etc. ?

Please let me know.

@Okeke12nancy
Copy link
Author

Hey @Theodore-Kelechukwu-Onyejiaku , sure

Here is the updated outline:

Part 1: Setting Up Your Angular Frontend

  • Installing and Configuring Angular and TypeScript
    • Overview of Angular and TypeScript.
    • Installing Angular CLI and creating a new project.
    • Configuring TypeScript for the project.
  • Initial Project Setup
    • Setting up the basic project structure.
    • Installing necessary dependencies.
    • Creating foundational components of the logistics app.

Part 2: Designing the User Interface in Angular

  • Creating Components for User Interfaces
    • Designing interfaces for customers and couriers.
    • Implementing reusable UI components.
  • Responsive Design and Navigation
    • Implementing responsive design using Angular Material or Bootstrap.
    • Setting up navigation for seamless user experience.

Part 3: Integrating Map Features in the UI

  • Using Map Libraries
    • Integrating Leaflet or Google Maps API for geolocation and map features.
    • Displaying real-time locations on a map.
  • Interactive Map Elements
    • Adding markers for customers and couriers.
    • Implementing location-based functionalities.

Part 4: Developing Angular Services for API Interaction

  • Setting Up Angular Services
    • Creating services to interact with the GraphQL API.
    • Handling authentication and authorization.
  • Managing Data Services
    • Developing services for managing customers, couriers, and orders data.
    • Implementing data caching and error handling.

Part 5: Implementing Real-Time Data Sync with WebSocket

  • Setting Up WebSocket in Angular
    • Configuring WebSocket for real-time communication.
    • Implementing real-time updates for order status and location tracking.
  • Handling Real-Time Data in the UI
    • Updating UI components with real-time data.
    • Managing real-time notifications and alerts.

Part 6: Setting Up Your Strapi Backend

  • Installing and Configuring Strapi, Prisma, PostgreSQL, and GraphQL
    • Overview of the backend stack.
    • Installing and setting up Strapi and Prisma.
    • Configuring PostgreSQL and GraphQL.
  • Initial Project Setup and Configuration
    • Setting up the basic structure of the Strapi project.
    • Configuring environment variables and project settings.

Part 7: Designing and Implementing Data Models

  • Creating Data Models with Prisma
    • Designing data models for customers, couriers, and orders.
    • Setting up database relationships and migrations.
  • Implementing Geolocation Data Models
    • Adding geolocation fields to relevant models.
    • Handling spatial data with PostgreSQL.

Part 8: Building the GraphQL API in Strapi

  • Creating a Robust GraphQL API
    • Setting up GraphQL endpoints for CRUD operations.
    • Securing the API with authentication and authorization.
  • Implementing Advanced Data Operations
    • Creating complex queries and mutations.
    • Implementing pagination, filtering, and sorting.

Part 9: Progressive Web App (PWA) Capabilities

  • Offline Functionality
    • Implementing service workers and caching strategies for offline access.
    • Ensuring key features are available even without an internet connection.
  • Push Notifications
    • Integrating push notification services like Firebase Cloud Messaging.
    • Sending real-time notifications for order updates and alerts.

Part 10: Advanced Analytics and Reporting

  • Data Visualization
    • Implementing advanced data visualization tools such as D3.js or Chart.js.
    • Creating interactive charts and graphs for insights into logistics data.
  • Real-Time Analytics
    • Using tools like Apache Kafka for real-time data streaming and processing.
    • Implementing analytics dashboards for monitoring key metrics.

@Theodore-Kelechukwu-Onyejiaku
Copy link
Collaborator

Hi @Okeke12nancy ,

Thank you so much for the update. However, I am wondering where Prisma is needed? 🤔

@Okeke12nancy
Copy link
Author

@Theodore-Kelechukwu-Onyejiaku , it helps make database interaction easy. But I can remove it if you want me to.

@Theodore-Kelechukwu-Onyejiaku
Copy link
Collaborator

Hi Nancy, thank you!

I don't think that would be a great idea using Prisma since Strapi is the backend and already has the Entity Service and Query Engine API.

Also, I have been able to readjust your blog series to just 3 parts.

From the above:

  • Part 1 will be from 1-5. It should focus on the frontend and UI with some features for the audience to play and interact with.
  • Part 2 will be 6, 8 and 9 excluding Prisma. Of course, you can use Postgres as your database as Strapi supports it. This will deal with the backend, backend customizations (if needed) and an app with the basic MVPs.
  • Part 3 will be 9 and 10. It should be adding advanced features like charts, real time analysis and converting to PWA.

Please let me know what you think. Thank you!

@Okeke12nancy
Copy link
Author

That can work,, thank you

@Theodore-Kelechukwu-Onyejiaku
Copy link
Collaborator

Please proceed. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Advanced Expertise In progress Tutorial being created
Projects
None yet
Development

No branches or pull requests

2 participants