Skip to content

Nuh-h/Jester

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jester

A web app created to demonstrate and explore the development of enterprise-like applications.

With previous self-taught experience, I return with an ambitious attempt to revive my Back End skills and finally put to bed blockers I encountered when I had no commercial experience of any kind.

It has been a thrilling few days so far building this, and I am hugely excited to be building and growing along with this challenge.

This is part of my journey towards full stack (.NET and Javascript-based front ends).

Demo

I'll try to add a video here later.

You can also build it yourself, see below for details.

Build it yourself

This is an ASP.NET Core project, you'll need .NET SDK at a minimum, and optionally VS Code.

You can clone the repo as usual but you will need a postgreSQL instance running. You can update credential details on appsettings.{environment}.json files. I recommend using docker for installing the db, just make sure you expose to the same network as the app (usually, your host machine).

Feel free to swap out PostgresSQL for other DBs that EF Core supports.

Updating DB through EF Core

You should be at the content root where all source code is i.e. Jester/Jester

  1. Add a migration with a MigrationName of your own
    dotnet ef migrations add MigrationName
    
  2. Update database with the new migration you created
    dotnet ef database update
    
  3. To remove the last migration
    dotnet ef migrations remove
    

Features

  • Getting data and showing all
  • Searching for particular news
  • Paginating results
  • Hyperlinking (for content, authors, tags, categories)
  • Content pages (to read full)
  • Adding "related articles" view component (delightful!) Learn about adding TagHelpers! +1
  • Dockerise so it can be deployed to free hosts other than Azure
  • Connecting to other docker a pain unless you can provide server ip directly (fine in prod as can be injected via env vars)
  • Update pagination count
  • Update pagination UI
  • Extend view component to accept author and maybe other tags
  • Setup tailwindcss
  • Set up WYSIWYG editor page for each article
  • When editing / creating, enable option to dump json in one go
  • Reactions
  • Filtering results
  • Restful API endpoints
  • Add Swagger
  • Database indexes
  • Caching
  • Error handling and pages
  • Testing
  • Notifications
  • Authentication and Authorisation
  • Analytics dashboard
  • Maybe Admin Panel

Release checklist

  • Prepare dockerfile
  • Test locally
  • Setup accounts on Railway and Supabase
  • Initialise
  • Deploy code to git
  • Let Railway do its thing
  • Test Supabase connection
  • Generate Railway domain
  • App is live 🚀
    • Fix issue with port (fixed by adding PORT var to railway)
    • Fix issue with connection string (fixed by correcting env var name on railway)
    • Fix issue with seeding file not being available on the prod workdir
      • Struggled to resolve. I tried to recreate locally with environment set to prod. nada. I tried it in docker. nada. I tried on another platform. It had issues with ssl, but never complained about file not being found. Burnt enough time on it - will be moving to building more features before I return to it (with possibly professional help) Had to cleanup and correct Dockerfile
    • Deploy to host with dev-cert 🚀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages