A full-stack web application built with .NET 8, Blazor Server, Entity Framework Core, and SQL Server that consumes the SWAPI to manage a list of Star Wars starships.
This project includes:
- Authentication via Google OAuth
- CRUD functionality for Starships
- Responsive and animated UI using Radzen and MudBlazor
- Docker support using Docker Compose and SQL Server in a container
- Secrets and config values loaded from a
.envfile
I had a lot of fun styling this project! Future features may include:
- Relational data linking Pilots and Films to Starships
- Application-wide logging
- Audit history of starship changes (who changed what and when)
-
Google OAuth Authentication
Users must log in using a Google account to access the app. -
Starship CRUD Functionality
Create, edit, update, and delete starships. All forms are validated and styled. -
Docker Compose Setup
Fully containerized app and SQL Server usingdocker-compose. No manual SQL installation required. -
Environment-Based Secrets
All sensitive credentials and connection strings are configured via.envto support secure and flexible deployments. -
Responsive UI with Animations
A modern, sci-fi-inspired user interface using Radzen Panels and MudBlazor animations.
git clone https://github.com/DevMando/Starship.git
cd StarshipWebAppCreate a .env file at the root of the StarshipWebApp project based on .env.example.
# === Database (uses Docker SQL Server container) ===
ConnectionStrings__DefaultConnection=Server=sqlserver;Database=StarshipDb;User Id=sa;Password=YourStrong!Passw0rd;TrustServerCertificate=True;
# === Google OAuth ===
Authentication__Google__ClientId=your-google-client-id.apps.googleusercontent.com
Authentication__Google__ClientSecret=your-google-client-secret
β οΈ Do NOT check in your.envfile to source control.
docker-compose up --buildThen navigate to http://localhost:8080
This will:
- Start SQL Server in a container
- Build and launch the Blazor web app
- Automatically apply EF Core migrations and seed the database
- Go to Google Cloud Console
- Create a new project
- Navigate to APIs & Services β Credentials
- Create OAuth Client ID for a Web Application
- Add authorized redirect URI:
http://localhost:8080/signin-google(or your deployed URL) - Copy your Client ID and Client Secret into the
.envfile
- .NET 8
- Blazor Server
- EF Core
- SQL Server (Docker containerized)
- Radzen Blazor Components
- MudBlazor
- Docker & Docker Compose
StarshipWebApp/β Main Blazor project.env.exampleβ Sample configurationdocker-compose.ymlβ Compose file for local developmentProgram.csβ Configuration & startup logicData/β EF Core DbContext and models
- Pilot and Film relationships
- Application logging
- Starship edit history and change tracking
- Deployment pipeline
This project is feature-complete for the coding challenge but open to future polish and enhancements.