Welcome to Fennorad!

This is a project I am actively working on with separate pages with wildy different functionality.


About this Project:

Technology Used
Blazor Server, DotNet 8, Razor Pages, EFCore, Sql Server, C#, Javascript, HTML, CSS
User Profiles
This was accomplished by leveraging Microsoft Identity
Contiunous Deployment
Github Actions is used to deploy changes to the main branch of the project as well as database changeslink
Responsive UI
Bootstrap 5 is leveraged to style the UI and allow for responsive design that works on mobile and desktop.
Why Blazor?
Blazor is similar to React in terms of how components can be self contained and exported. It was a logical first step for me to venture into site building with a familiar C# background.
Overview
Chat with Claude a generative AI
Api Integration
Claude is served via an API by Anthropic. They have libraries for Python and Typescript but don't for C#. This was integrated via manually generated HttpClient requests.
UI
This page borrows UI elements from the other Chat tab but much less logic
Overview
Allows users to connect and have conversations
SQL Server
This particular piece of the project involved heavy SQL involvement. There are 5 tables leveraged for keeping track of user conversations, message history, and read receipts. DbUp is used to update the database tables to have some version control over changes.
UI
This page has the most UI heavy logic which includes: Collapsing the chat container for mobile, updating UI when messages have been received and then subsequently read, user search returning results instantaneously
How are new messages received?
There is a 15 second timer that gathers new messages for every user conversation. If a user has new messages the conversation tile will flash to indicate new messages. Once new messages are read then the conversation will no longer flash
Overview
This is an integration with Mapbox API that allows for users to get directions.
Fennorad.Mapbox
Mapbox API that has javascript libraries you can integrate with. Fennorad.Mapbox is a library I created to allow for easy integration with the Directions API within Mapbox as a Blazor component
Overview
This page allows users to search, watch, and download youtube videos.
Youtube Download
This used to leverage the youtube-dl project to be able to gather and download youtube videos. This required python to be installed in Azure and required a lot of manual manipulation of the production service. I recently pivoted to using YoutubeExplode a package that works out of the box in dotnet. This allows for either mp4 or mp3 download.
Embedded Videos
Youtube allows for embedding youtube videos plus I enabled casting (doesn't work on mobile)
Overview
This page allows users to take JSON/XML strings and makes them pretty.
Why does this matter?
I work with 3rd party APIs and when dealing with responses from code causes the returned objects to be minified. It helps to format the JSON/XML objects into a palatable format to properly asses the objects.
Overview
This page allows users to generate images using OpenApi's DALL-E 3.
Image Display & Download
If you generate more than one image it will be added to the image carousel. Can download image either by right clicking and saving or by clicking the download button.
Image Storage
Currently this project does not store generated images but have considered either storing as base64 encoded strings in a SQL Server table or in Azure Blob Storage

Questions? Reach out either via email (fernando.napier@gmail.com), Github, or LinkedIn

An error has occurred. This application may no longer respond until reloaded. Reload 🗙