
Showcases building a full-stack GoLang React site with a Mongo database backend, admin panel, logos, carousel, and content management for front-end display.
Explore a real-world fullstack Go and React project, turning a designer-created concept into a living single page applications front end and a robust back end with REST API and websockets.
Move from the design file to reality by provisioning a fresh Ubuntu 20.04 server, configuring Nginx, securing with Let's Encrypt SSLs, and integrating frontend, backend, and database.
Learn how to buy a domain name, get a cheap server, and point the domain to the server with DNS records, using Linode or similar providers.
update and install nginx, create notes in the web directory, stop nginx to bind port 80, then use let's encrypt to obtain a certificate for your domain and restart nginx.
Configure engine x by using symbolic links between sites-available and sites-enabled, create a custom site file, delete the default, and prepare to serve a hello world from a subdirectory.
Configure nginx with a multi-server setup, enable https using Let's Encrypt, redirect http to https, define root and index, test and restart nginx for secure deployment.
Install and configure Nginx, spin up a sample web page, then set up Mongo: create a user, switch to the admin database, start the service, and prepare for security testing.
Configure MongoDB security by enabling authorization, allow external connections, and start the mongod service, then test authentication and connect from backend and frontend using admin account on the admin database.
Download, extract, and move the node folder, then create symbolic links to node and npm so you can run them from anywhere on the system.
Begin building the React app by creating a source structure with components, fonts, and assets, adding initial files, then install npm packages and prepare to run the first React app.
Install npm packages for the front-end setup, update the babelrc by omitting the class properties plugin to avoid duplication errors, and complete six package installations.
Fill in the battle file and tidy notes as the project evolves. Add Google Fonts, configure the index, and outline the app provider to anchor the application.
Set up a React app, import hooks like useState and useEffect, and style with styled-components while configuring Parcel to render a hello world scene.
Build a brain-like app provider to manage global state in a React app, wrap the main app with context, and enable data flow using Axios, websockets, and rem-based sizing.
Set up the hook router in the main app, create a public route and login/admon components, and test navigation to the login and admon routes to verify routing.
Design and implement the front header for the public page by exporting and integrating an SPG header, styling background, and adjusting height and scale in a React app.
Tune a responsive header layout by adjusting height, width, and repeating elements to align with a 1920 canvas, using min and max width, and componentizing the header with useEffect.
Demonstrates building a responsive front header by constraining width to 100% with auto height, ensuring the header stays aligned and scales across different screen sizes.
Explore building a responsive header with SPG assets, and learn to center the header by using left 50 percent and translating negative 50 percent.
Design a responsive front header with padding, centered trapezoid shapes, and percentage-based sizing to ensure consistent layout across devices.
Build the front-end layout in a React app with header and footer components, routing assets, and a flitter component, while planning backend integration for filters, panels, and a hamburger menu.
Export the footer SPG, split the bottom area into three flex rows, center content, and refine height and padding for a clean, icon-ready footer.
Export two icons for the footer and assemble social icons for Instagram, Facebook, and Twitter. Tweak layout with padding and margins, center content using flexbox, and ensure alignment.
Explore building a two-row footer with flexbox, align content to the bottom and center, and add a top border. Style a wide button with color, radius, and a hover state.
Focuses on implementing backend logging and storing UI assets in the database, then starts building the Go backend, setting up project folders and installing Go.
Set up a Go development environment, download and extract a tarball, configure GOPATH and PATH, install and import packages with go get, and run a hello world program.
Set up a go backend to serve the frontend and enable frontend–backend communication, using the flag package, binding to external interfaces, and certificates from Let's Encrypt or nginx.
Build a Go backend with a mux router to handle http and websocket traffic, define routes, implement a websocket handler, and start the server.
Turn the ACP server into a WebSocket service by enabling WebSocket upgrade, validating origins, and establishing a stateful connection object to bridge the backend with the frontend.
Learn to implement and test WebSocket connections in a React app, manage websocket state and ready states, and establish a reliable front-end upgrade flow with useEffect.
Attach a unique id to a WebSocket connection in Go, upgrade the connection, and extend the connection object using mux and a WebSocket package.
Build a Go-based WebSocket server that manages multiple connections with a heartbeat, handles on open, on message, and on close, and exchanges typed JSON messages with the front end.
Implement and debug WebSocket communication for login flows, handling ready state, and sending structured payloads with type and data to the server, while managing message events and WebSocket IDs.
Demonstrates building a login panel by reproducing a design, sizing a 550x350 box, centering with transform translate(-50%, -50%), and integrating an SVG image while aligning with layout borders.
Design a three-row login panel using flex layouts, centering a top and bottom section within a center panel, with responsive height, class names, and spacing to align labels and inputs.
Design and style a login panel with two rows of labeled username and password inputs using flex layout, spacing, and custom styling, and wire up a key listener for login.
Implement a login panel by managing username and password as state, wiring onchange handlers, and triggering a login request with the enter key to send data to the server.
Design a login panel that sends user credentials to the server, requests a JWT, and uses base64 encoding while clearing the form for the next attempt.
Implement a login flow by creating a MongoDB database and a users collection, encoding credentials with base64, decoding them in Go, and validating users via alias or email.
Create a user model, implement bcrypt password encryption, generate a test password, and plan to connect the Go server to MongoDB to verify login by email or alias.
Continue toward MongoDB integration in Go by creating a configuration package with host, user, password, and database, then build a context with timeout to connect and ping MongoDB.
Implement a mongo find user function that searches by email or alias, decodes the user struct, and validates the password to return the user on success.
Validate user authentication by querying the database by email and alias, verify the password with encryption, then return the user object and a JWT to the front end.
Learn to generate a JWT with RSA public and private keys in Go, including creating and reading key files and embedding user data into the token.
Generate a JWT for user login by signing RSA private keys, creating time-bound claims for 30 minutes, and validating tokens with a public key.
Learn how to handle a back-and-forth JWT flow between a GoLang server and a React frontend, store and validate tokens, and logout on invalid data.
Send the JWT to the server for verification, validate with the public key, and store the user data in local storage after successful verification; test with valid and invalid tokens.
Learn to validate a previously stored JWT by retrieving base64-encoded data from local storage, selecting the middle section, checking expiration, and performing server validation before updating the user state.
Finalize the admin interface workflow by validating stored JWT tokens, handling login state, and navigating to the admin panel while ensuring websocket reconnection and proper loading logic.
Design and refine an admin interface by exporting a logo, configuring the nav bar, and aligning a balanced 50/50 layout.
Create a dynamic admin menu by building a menu items array and mapping over it to render items with an admin menu item wrapper, circle, and text, using flex layout.
Configure the admin interface navigation with display flex, centered items, and tuned color and font size, then add hover effects and a red selected state.
Develop and refine an admin interface that exports logos as svg, tracks the selected item, and switches between home and logos views using responsive flex layouts.
Adjusts the admin menu with a 2.5 rem top padding and dash-separated, lowercase class names; implements a React/JavaScript selected state that highlights the active item in red and defaults home.
Design the admin interface by creating a 50/50 content area, building a logos carousel, and centering logos with absolute positioning inside a relative container.
Build an admin interface that guards routes using useContext and useEffect, redirects unauthenticated or unverified users, and manages login/logout via stored tokens.
Build and wire an admin interface by implementing a logout function, handling JWT verification, and exporting logout logic to trigger on user clicks, while syncing local state.
Design and wire the admin interface by setting up panels for logos, content, site design, debug, and to-do, then debug interactions to render selected content.
Explore the admin logos interface by uploading logos with ant design, building a responsive 50 50 grid, and creating a reusable slick slider component to preview and save logo properties.
Build an admin logos interface by configuring a slick slider to display five logos with box shadows, adjustable width, and arrow navigation, controlled through props and class names.
Experiment with the logos interface by adjusting padding, borders, and border radius in a slick slider, then tune arrows, dots, and color opacity to match the design.
Install and integrate an admin logos upload component using Ant Design. Validate image types and sizes, encode to base64, and wire a dummy upload workflow.
Build an admin logos interface with image uploads and square thumbnails in a responsive grid. Use max width and height and object-fit: cover to keep logos neat and contained.
Design the admin logos interface by configuring the header section, shaping a logos grid with padding and shadows, and integrating a slick slider with controls and a red plus button.
Learn to implement the admin logos interface with a slick slider, troubleshoot compile errors, manage keys and props, and adjust layout to center arrows and enhance design.
Develop and refine the admin logos interface by implementing a responsive upload flow, styling with borders, centering logos, and building a switch component for real-time layout adjustments.
Learn to manage separate data for two admin logos using a base64 value, handle image uploads, and switch between black-and-white and full-color modes.
Size the admin logos interface logo box to 240 by 84 and wrap the upload forms. Arrange a grid with exact widths and plan a reusable switch component.
Learn to design an admin logos interface by building a centered white circle with hover effects, flex layouts, and exporting assets as SPG, while creating reusable switch components.
Design an admin logos interface using responsive flex layouts, top and bottom panels, switches with on/off states, and labeled form controls, plus configurable red and green buttons.
Collect desktop and mobile logo states and send them to the server with JWT authentication. Create a struct, resize images, and store logo data in the database.
Define a new struct, unmask the data, and assign fields to prepare saving logos. Then set up asynchronous data handling to send to a server and insert into the database.
Insert a logo document into MongoDB using a dynamic Go insert function and a collection. Handle image data and errors, and prepare for an asynchronous task engine.
Save and retrieve logos in a real-world GoLang React app. Insert logo records with IDs, fetch all logos, and display black-and-white variants in the admin interface.
Explore implementing an asynchronous task queue in Go that processes logo fetch and creation tasks via workers, channels, and websockets, enabling parallel execution.
Make logos clickable to load a specific slide by targeting images with classes and wiring click handlers, while styling with display flex, overflow hidden, and object cover.
Learn to reset logo creation forms, load selected logos, and auto-fill form fields by listening to changes with useEffect, filtering data, and preparing updates for server submission.
Make logos clickable to load the actual slide in a slick slider, targeting images with specific classes and enforcing centered, overflow-hidden display.
Refine the logo saving flow into a reactive, server-driven create-or-update process. Leverage a Mongo-based task system to insert or update logos and test the data flow.
Learn how to save logos by querying a database via an API, apply filters, update image data for desktop and mobile, and refresh the front end to reflect changes.
Test the logo upload flow by uploading new images, saving and updating logos in the database, and sending new logo data via internal functions and WebSocket for real-time updates.
Implement front-end and back-end delete functionality for logos via API, marshal data, enable hover and select interactions, and refresh logos list to keep the task manager in sync.
Learn to debug a fullstack GoLang React app by wiring context, reading the app state, and toggling views to inspect components, logos, and image data.
Design and align logo sets and paired images for a responsive mobile view, balancing background and foreground photos while reworking the section layout for a real-world fullstack project.
Design and implement the other section by integrating logos and images, creating a reusable top section, and wiring state for logos and forms with data flow across components.
Consolidate similar functions and implement a dummy request to validate and upload files, integrate front-end and back-end flows, and handle logo creation and database insertion with Mongo.
Refine a layout with grid-based arrangement, slides, and a big red button, adjust logo spacing, and implement form text and image upload features.
During this session, we adjust logo and slider settings across tabs, implement a slide show prop, and tweak padding and spacing to align the user interface and workflow.
Adjust the app’s ui by aligning logos, restoring missing buttons, and adding titles that match each image with a background, while weighing duplicating vs reusing similar components.
Develop and style responsive form layouts using grid and input components, adjust margins and placeholders, and prepare data flow to the backend for database storage.
Debug a real-time front-to-back data flow by validating create and update operations for logos and others, testing error handling and concurrent WebSocket requests.
Learn how to enforce a single write or read per WebSocket while maintaining concurrency across multiple sockets, using an async queue and awareness of same WebSocket vs different WebSockets.
Study how to fix concurrent WebSocket writes by moving synchronization from a global map to per-connection mutexes, embedding a sink mutex in the WebSocket struct and testing the result.
Navigate real-world debugging and data handling in a fullstack GoLang React project, solving slider logic, undefined checks, and logo management with create, update, and delete.
Update the project by implementing title and image handling, and ensuring logos and other images persist. Review site content, header image options, and dynamic menu items pulled from the database.
Move into the site content section by implementing the header image, about section with headshot, and nav menus, while wiring base64 image upload and profile image handling.
Build an admin site content section by integrating an avatar component, profile image upload, and circular avatars with a 50 percent border radius, plus validation.
Set up admin site content by resizing profile images, cropping to square or circle, adjusting focal points, exporting assets as PNG, and updating logos while handling JWT errors.
Build an admin site content editor in React: create a label, center the headshot, pair input and textarea, style borders, and load initial profile data via a web socket.
Learn to implement admin site content with profile image upload, rgba red colors, and layout tweaks like padding, centering, and placeholder handling in a real-world app.
Enable admin site content management by building forms with automatic updates on typing, a content header and center container, and a 720x320 grid layout with save actions to the database.
Set up admin site content with action buttons, save flows, and profile and about sections, while applying global styles and stock components and enabling image upload to the server.
Create a content object with id, title, bio, and image data and save it into the content database collection, using a JWT-authenticated JSON payload to store the content.
Explore editing and managing admin site content by fetching and updating a single site content document via key-value queries in GoLang and Mongo database.
Enter and save admin site content, verify database insertion, and implement update for the about content, including the title, bio, and image data.
Update admin content by loading existing non-null data, filtering by content id, and applying title, bio, and profile image changes to the database with immediate front-end refresh.
This is a site request I built using Full stack Go Lang, React, Mongo and other technologies. I wanted to bring the the process and the build into a course because I believe the best way to learn is to build a full project that ties a lot of ideas together.