Add project files.
30
.dockerignore
Normal file
@@ -0,0 +1,30 @@
|
||||
**/.classpath
|
||||
**/.dockerignore
|
||||
**/.env
|
||||
**/.git
|
||||
**/.gitignore
|
||||
**/.project
|
||||
**/.settings
|
||||
**/.toolstarget
|
||||
**/.vs
|
||||
**/.vscode
|
||||
**/*.*proj.user
|
||||
**/*.dbmdl
|
||||
**/*.jfm
|
||||
**/azds.yaml
|
||||
**/bin
|
||||
**/charts
|
||||
**/docker-compose*
|
||||
**/Dockerfile*
|
||||
**/node_modules
|
||||
**/npm-debug.log
|
||||
**/obj
|
||||
**/secrets.dev.yaml
|
||||
**/values.dev.yaml
|
||||
LICENSE
|
||||
README.md
|
||||
!**/.gitignore
|
||||
!.git/HEAD
|
||||
!.git/config
|
||||
!.git/packed-refs
|
||||
!.git/refs/heads/**
|
||||
68
Controllers/ContactController.cs
Normal file
@@ -0,0 +1,68 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System.Net;
|
||||
using clivelancaster.Models;
|
||||
using MailKit.Net.Smtp;
|
||||
using MimeKit;
|
||||
|
||||
namespace clivelancaster.Controllers
|
||||
{
|
||||
public class ContactController : Controller
|
||||
{
|
||||
public IActionResult Index()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
private readonly IConfiguration _configuration;
|
||||
|
||||
public ContactController(IConfiguration configuration)
|
||||
{
|
||||
_configuration = configuration;
|
||||
}
|
||||
[HttpPost]
|
||||
public async Task<IActionResult> Index(ContactFormModel model)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
// Build the email message
|
||||
var message = new MimeMessage();
|
||||
message.From.Add(new MailboxAddress("Clive", "clivelancaster@gmail.com"));
|
||||
message.To.Add(new MailboxAddress("Clive", "clivelancaster@gmail.com"));
|
||||
message.Subject = model.Subject;
|
||||
|
||||
var bodyBuilder = new BodyBuilder
|
||||
{
|
||||
TextBody = $"Name: {model.Name}\nEmail: {model.Email}\n\nMessage:\n{model.Message}"
|
||||
};
|
||||
|
||||
message.Body = bodyBuilder.ToMessageBody();
|
||||
|
||||
try
|
||||
{
|
||||
using (var client = new SmtpClient())
|
||||
{
|
||||
// Retrieve SMTP settings from appsettings.json
|
||||
var smtpHost = _configuration["SmtpSettings:Host"];
|
||||
int smtpPort = int.Parse(s: _configuration["SmtpSettings:Port"]);
|
||||
var smtpUsername = _configuration["SmtpSettings:Username"];
|
||||
var smtpPassword = _configuration["SmtpSettings:Password"];
|
||||
|
||||
client.Connect(smtpHost, smtpPort, true);
|
||||
client.Authenticate(smtpUsername, smtpPassword);
|
||||
await client.SendAsync(message);
|
||||
client.Disconnect(true);
|
||||
}
|
||||
|
||||
ViewBag.Message = "Message sent successfully!";
|
||||
}
|
||||
catch
|
||||
{
|
||||
ViewBag.Message = "Error sending message.";
|
||||
}
|
||||
|
||||
return View();
|
||||
}
|
||||
|
||||
return View(model);
|
||||
}
|
||||
}
|
||||
}
|
||||
71
Controllers/HomeController.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
using clivelancaster.Data;
|
||||
using clivelancaster.Models;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace clivelancaster.Controllers
|
||||
{
|
||||
public class HomeController : Controller
|
||||
{
|
||||
//private readonly ILogger<HomeController> _logger;
|
||||
private readonly ApplicationDbContext _context;
|
||||
|
||||
public HomeController(ApplicationDbContext context)
|
||||
{
|
||||
_context = context;
|
||||
}
|
||||
|
||||
/*public HomeController(ILogger<HomeController> logger)
|
||||
{
|
||||
_logger = logger;
|
||||
}*/
|
||||
|
||||
[HttpGet]
|
||||
public IActionResult Index()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public async Task<IActionResult> IndexAsync(SubscribeFormModel subscription)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
_context.Add(subscription);
|
||||
await _context.SaveChangesAsync();
|
||||
return RedirectToAction("ThankYou");
|
||||
}
|
||||
return View(subscription);
|
||||
}
|
||||
public IActionResult About()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
public IActionResult Clients()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
public IActionResult Services()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
public IActionResult Terms()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
public IActionResult Privacy()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
public IActionResult ThankYou()
|
||||
{
|
||||
return View();
|
||||
}
|
||||
|
||||
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
|
||||
public IActionResult Error()
|
||||
{
|
||||
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
|
||||
}
|
||||
}
|
||||
}
|
||||
15
Data/ApplicationDbContext.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using clivelancaster.Models;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace clivelancaster.Data
|
||||
{
|
||||
public class ApplicationDbContext : DbContext
|
||||
{
|
||||
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
|
||||
: base(options)
|
||||
{
|
||||
}
|
||||
|
||||
public DbSet<SubscribeFormModel> subscriptions { get; set; }
|
||||
}
|
||||
}
|
||||
30
Dockerfile
Normal file
@@ -0,0 +1,30 @@
|
||||
# See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
|
||||
|
||||
# This stage is used when running from VS in fast mode (Default for Debug configuration)
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
|
||||
USER app
|
||||
WORKDIR /app
|
||||
EXPOSE 8080
|
||||
EXPOSE 8081
|
||||
|
||||
|
||||
# This stage is used to build the service project
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
|
||||
ARG BUILD_CONFIGURATION=Release
|
||||
WORKDIR /src
|
||||
COPY ["clivelancaster.csproj", "."]
|
||||
RUN dotnet restore "./clivelancaster.csproj"
|
||||
COPY . .
|
||||
WORKDIR "/src/."
|
||||
RUN dotnet build "./clivelancaster.csproj" -c $BUILD_CONFIGURATION -o /app/build
|
||||
|
||||
# This stage is used to publish the service project to be copied to the final stage
|
||||
FROM build AS publish
|
||||
ARG BUILD_CONFIGURATION=Release
|
||||
RUN dotnet publish "./clivelancaster.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
|
||||
|
||||
# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration)
|
||||
FROM base AS final
|
||||
WORKDIR /app
|
||||
COPY --from=publish /app/publish .
|
||||
ENTRYPOINT ["dotnet", "clivelancaster.dll"]
|
||||
24
Models/ContactFormModel.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace clivelancaster.Models
|
||||
{
|
||||
public class ContactFormModel
|
||||
{
|
||||
[Required]
|
||||
[Display(Name = "Your Name")]
|
||||
public required string Name { get; set; }
|
||||
|
||||
[Required]
|
||||
[EmailAddress]
|
||||
[Display(Name = "Your Email")]
|
||||
public required string Email { get; set; }
|
||||
|
||||
[Required]
|
||||
[Display(Name = "Subject")]
|
||||
public required string Subject { get; set; }
|
||||
|
||||
[Required]
|
||||
[Display(Name = "Message")]
|
||||
public required string Message { get; set; }
|
||||
}
|
||||
}
|
||||
9
Models/ErrorViewModel.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace clivelancaster.Models
|
||||
{
|
||||
public class ErrorViewModel
|
||||
{
|
||||
public string? RequestId { get; set; }
|
||||
|
||||
public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
|
||||
}
|
||||
}
|
||||
18
Models/SubscribeFormModel.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace clivelancaster.Models
|
||||
{
|
||||
public class SubscribeFormModel
|
||||
{
|
||||
[Key]
|
||||
public int id { get; set; }
|
||||
|
||||
[Required]
|
||||
[EmailAddress]
|
||||
[StringLength(255)]
|
||||
public required string email { get; set; }
|
||||
|
||||
[Required]
|
||||
public DateTime datesubscribed { get; set; } = DateTime.Now;
|
||||
}
|
||||
}
|
||||
35
Program.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
using clivelancaster.Data;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
// Add services to the container.
|
||||
builder.Services.AddControllersWithViews();
|
||||
|
||||
// Add PostgreSQL support
|
||||
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
|
||||
builder.Services.AddDbContext<ApplicationDbContext>(options =>
|
||||
options.UseNpgsql(builder.Configuration.GetConnectionString("DefaultConnection")));
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
// Configure the HTTP request pipeline.
|
||||
if (!app.Environment.IsDevelopment())
|
||||
{
|
||||
app.UseExceptionHandler("/Home/Error");
|
||||
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
|
||||
app.UseHsts();
|
||||
}
|
||||
|
||||
app.UseHttpsRedirection();
|
||||
app.UseStaticFiles();
|
||||
|
||||
app.UseRouting();
|
||||
|
||||
app.UseAuthorization();
|
||||
|
||||
app.MapControllerRoute(
|
||||
name: "default",
|
||||
pattern: "{controller=Home}/{action=Index}/{id?}");
|
||||
|
||||
app.Run();
|
||||
49
Properties/launchSettings.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"profiles": {
|
||||
"http": {
|
||||
"commandName": "Project",
|
||||
"launchBrowser": true,
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
},
|
||||
"dotnetRunMessages": true,
|
||||
"applicationUrl": "http://localhost:5045"
|
||||
},
|
||||
"https": {
|
||||
"commandName": "Project",
|
||||
"launchBrowser": true,
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
},
|
||||
"dotnetRunMessages": true,
|
||||
"applicationUrl": "https://localhost:7095;http://localhost:5045"
|
||||
},
|
||||
"IIS Express": {
|
||||
"commandName": "IISExpress",
|
||||
"launchBrowser": true,
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
},
|
||||
"Container (Dockerfile)": {
|
||||
"commandName": "Docker",
|
||||
"launchBrowser": true,
|
||||
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_HTTPS_PORTS": "8081",
|
||||
"ASPNETCORE_HTTP_PORTS": "8080"
|
||||
},
|
||||
"publishAllPorts": true,
|
||||
"useSSL": true
|
||||
}
|
||||
},
|
||||
"$schema": "http://json.schemastore.org/launchsettings.json",
|
||||
"iisSettings": {
|
||||
"windowsAuthentication": false,
|
||||
"anonymousAuthentication": true,
|
||||
"iisExpress": {
|
||||
"applicationUrl": "http://localhost:63934",
|
||||
"sslPort": 44396
|
||||
}
|
||||
}
|
||||
}
|
||||
5
Readme.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
CREATE TABLE Subscriptions (
|
||||
Id SERIAL PRIMARY KEY, -- Auto-incrementing primary key
|
||||
Email VARCHAR(255) NOT NULL, -- Email field, required with a max length of 255 characters
|
||||
DateSubscribed TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP -- Date and time of subscription
|
||||
);
|
||||
48
Services/MailService.cs
Normal file
@@ -0,0 +1,48 @@
|
||||
using MailKit.Net.Smtp;
|
||||
using MimeKit;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
namespace clivelancaster.Services
|
||||
{
|
||||
public class MailService
|
||||
{
|
||||
private readonly SmtpSettings _smtpSettings;
|
||||
|
||||
public MailService(IOptions<SmtpSettings> smtpSettings)
|
||||
{
|
||||
_smtpSettings = smtpSettings.Value;
|
||||
}
|
||||
|
||||
public async Task SendEmailAsync(string fromEmail, string fromName, string message)
|
||||
{
|
||||
var emailMessage = new MimeMessage();
|
||||
emailMessage.From.Add(new MailboxAddress(_smtpSettings.SenderName, _smtpSettings.SenderEmail));
|
||||
emailMessage.To.Add(new MailboxAddress(_smtpSettings.SenderName, _smtpSettings.SenderEmail)); // Send to yourself
|
||||
emailMessage.Subject = "Contact Form Message";
|
||||
|
||||
emailMessage.Body = new TextPart("plain")
|
||||
{
|
||||
Text = $"From: {fromName} ({fromEmail})\n\nMessage:\n{message}"
|
||||
};
|
||||
|
||||
using (var client = new SmtpClient())
|
||||
{
|
||||
await client.ConnectAsync(_smtpSettings.Server, _smtpSettings.Port, MailKit.Security.SecureSocketOptions.StartTls);
|
||||
await client.AuthenticateAsync(_smtpSettings.Username, _smtpSettings.Password);
|
||||
await client.SendAsync(emailMessage);
|
||||
await client.DisconnectAsync(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class SmtpSettings
|
||||
{
|
||||
public required string Server { get; set; }
|
||||
public int Port { get; set; }
|
||||
public required string SenderName { get; set; }
|
||||
public required string SenderEmail { get; set; }
|
||||
public required string Username { get; set; }
|
||||
public required string Password { get; set; }
|
||||
public bool UseSSL { get; set; }
|
||||
}
|
||||
}
|
||||
72
Views/Contact/Index.cshtml
Normal file
@@ -0,0 +1,72 @@
|
||||
@model clivelancaster.Models.ContactFormModel
|
||||
@{
|
||||
ViewData["Title"] = "Contact";
|
||||
Layout = "~/Views/Shared/_Layout.cshtml";
|
||||
}
|
||||
|
||||
<div class="container py-4">
|
||||
<header class="pb-3 mb-4 border-bottom">
|
||||
<span class="fs-4"><i class="bi bi-envelope-fill"></i> @ViewData["Title"]</span>
|
||||
</header>
|
||||
<div class="p-5 mb-4 bg-body-tertiary rounded-3">
|
||||
<div class="container-fluid py-5">
|
||||
<h2>Contact</h2>
|
||||
|
||||
@if (ViewBag.Message != null)
|
||||
{
|
||||
<div class="alert alert-info">@ViewBag.Message</div>
|
||||
}
|
||||
|
||||
<form asp-action="Index" method="post">
|
||||
<div class="form-group">
|
||||
<label asp-for="Name"></label>
|
||||
<input asp-for="Name" class="form-control" />
|
||||
<span asp-validation-for="Name" class="text-danger"></span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Email"></label>
|
||||
<input asp-for="Email" class="form-control" />
|
||||
<span asp-validation-for="Email" class="text-danger"></span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Subject"></label>
|
||||
<input asp-for="Subject" class="form-control" />
|
||||
<span asp-validation-for="Subject" class="text-danger"></span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Message"></label>
|
||||
<textarea asp-for="Message" class="form-control"></textarea>
|
||||
<span asp-validation-for="Message" class="text-danger"></span>
|
||||
</div>
|
||||
<div class="p-2"></div>
|
||||
<button type="submit" class="btn btn-primary">Send Message</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row align-items-md-stretch">
|
||||
<div class="col-md-6">
|
||||
<div class="h-100 p-5 text-bg-dark rounded-3">
|
||||
<h2>Phone</h2>
|
||||
<i class="bi bi-telephone-fill"></i>
|
||||
<p><a href="tel:0401089305" style="color:#fff;">0401089305</a></p>
|
||||
<h2>Email</h2>
|
||||
<i class="bi bi-envelope-at-fill"></i>
|
||||
<p><a href="mailto:clivelancaster@gmx.com" style="color:#fff;">clivelancaster@gmx.com</a></p>
|
||||
<h2>Telegram</h2>
|
||||
<i class="bi bi-telegram"></i>
|
||||
<p><a href="https://t.me/clivelancaster" style="color:#fff;">https://t.me/clivelancaster</a></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="h-100 p-5 bg-body-tertiary border rounded-3">
|
||||
<h2>Location</h2>
|
||||
<i class="bi bi-geo-alt-fill"></i>
|
||||
<p>Sydney Australia</p>
|
||||
<h2>Social</h2>
|
||||
<i class="bi bi-linkedin"></i>
|
||||
<p><a href="https://www.linkedin.com/in/clivelancaster/" style="color:#5a5a5a;">https://www.linkedin.com/in/clivelancaster/</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
153
Views/Home/About.cshtml
Normal file
@@ -0,0 +1,153 @@
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "About";
|
||||
Layout = "~/Views/Shared/_Layout.cshtml";
|
||||
}
|
||||
|
||||
<div class="container py-4">
|
||||
<header class="pb-3 mb-4 border-bottom">
|
||||
<span class="fs-4"><i class="bi bi-file-person-fill"></i> @ViewData["Title"]</span>
|
||||
</header>
|
||||
|
||||
<div class="p-5 mb-4 bg-body-tertiary rounded-3">
|
||||
<div class="container-fluid py-2">
|
||||
<h1 class="display-6 fw-bold">Profile</h1>
|
||||
<p class="col-md-8 fs-6">
|
||||
Results driven and accomplished customer-focused Digital Product Manger having worked both as a business analyst and full stack software developer within health-tech, prop-tech, human resources, marketing e-commerce, insurance, hospitality, real-estate and business services.
|
||||
Demonstrated experience delivering digital products with an analytical, collaborative and open-minded approach directed to finding the ideal balance between business objectives and customer experience.
|
||||
</p>
|
||||
<h1 class="display-6 fw-bold">Key Achievements</h1>
|
||||
<ul class="col-md-8 fs-6">
|
||||
<li>
|
||||
Firmly established Telstra Health in the healthcare market as a trusted electronic referral solutions provider, hence enabling a following business opportunity with the Australian Government by successfully delivering an electronic work capacity certificate referrals solution using interoperable SMART on FHIR for ReturnToWorkSA.
|
||||
</li>
|
||||
<li>
|
||||
Increased market share for MedicalDirector by successfully planning and managing the delivery of a business first Medicines DaaS from conception to initial customer service contract.
|
||||
</li>
|
||||
<li>
|
||||
Enabled increased revenue for Getting Personal one of the UK’s largest online personalised gift stores by facilitating the delivery of a tailored retail Data Analytics solution.
|
||||
</li>
|
||||
<li>
|
||||
Worked on the delivery of a business-critical e-commerce platform for Best Western Hotels as part of a companywide rebrand increasing brand recognition and customer experience for over 290 privately owned hotels and customers.
|
||||
</li>
|
||||
<li>
|
||||
Increased processing efficiency and accuracy of accounting for Best Western Hotels by designed and building a Credit Card Reconciliation application for used to validate phone sales against actual sales figures.
|
||||
</li>
|
||||
</ul>
|
||||
<button class="btn btn-primary btn-lg" type="button">Dowload PDF</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="p-5 mb-4 bg-body-tertiary rounded-3">
|
||||
<div class="container-fluid py-2">
|
||||
<h1 class="display-6 fw-bold">Core Competencies</h1>
|
||||
<p class="col-md-8 fs-6">
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Product Strategy Development</strong>
|
||||
<p>Define product vision and roadmap aligned with business goals and user needs. Prioritize features based on market trends and competition.</p>
|
||||
<p><strong>Tools/Methodologies:</strong> North Star Metric, OKRs, SWOT Analysis, Business Model Canvas</p>
|
||||
</li>
|
||||
<li>
|
||||
<strong>User-Centered Design & UX Focus</strong>
|
||||
<p>Advocate for users by applying UX/UI best practices to create intuitive, user-friendly products.</p>
|
||||
<p><strong>Tools/Methodologies:</strong> Design Thinking, Figma, User Personas</p>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Data-Driven Decision Making</strong>
|
||||
<p>Use data to validate decisions and guide product improvements based on customer behavior and performance metrics.</p>
|
||||
<p><strong>Tools/Methodologies:</strong>Google Analytics, A/B Testing, SQL Microsoft Power BI, Tableau</p>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Agile Methodology & Product Development Lifecycle</strong>
|
||||
<p>Lead teams through agile processes, ensuring smooth product development from ideation to launch.</p>
|
||||
<p><strong>Tools/Methodologies:</strong> Scrum, Kanban, Jira, Confluence</p>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Stakeholder Management & Communication</strong>
|
||||
<p>Align cross-functional teams and communicate product value effectively to all stakeholders.</p>
|
||||
<p><strong>Tools/Methodologies:</strong> RACI Matrix, Microsoft Teams, Miro, PowerPoint</p>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Technical Acumen</strong>
|
||||
<p>Understand technology and development processes to bridge the gap between business and engineering.</p>
|
||||
<p><strong>Tools/Methodologies:</strong> APIs, Postman, GitHub, DevOps principles</p>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Roadmap & Backlog Prioritization</strong>
|
||||
<p>Prioritize features to maximize value and impact using structured frameworks.</p>
|
||||
<p><strong>Tools/Methodologies:</strong> MoSCoW, RICE, Trello, Productboard</p>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Market & Competitive Analysis</strong>
|
||||
<p>Analyze market trends and competition to ensure product differentiation and growth.</p>
|
||||
<p><strong>Tools/Methodologies:</strong> Porter’s Five Forces, SEMrush, Ahrefs</p>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Customer Empathy & Feedback Loops</strong>
|
||||
<p>Regularly engage users to gather feedback and iterate product features based on customer pain points.</p>
|
||||
<p><strong>Tools/Methodologies:</strong> NPS, UserTesting, Customer Journey Mapping</p>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Financial Acumen & Business Value Creation</strong>
|
||||
<p>Align product goals with business outcomes like revenue, profitability, and customer retention.</p>
|
||||
<p><strong>Tools/Methodologies:</strong> P&L Management, ROI Calculations, Pricing Models</p>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Growth Mindset & Continuous Learning</strong>
|
||||
<p>Stay updated on industry trends and continuously improve skills and processes.</p>
|
||||
<p><strong>Tools/Methodologies:</strong> Linkin Learning, Product-Led Growth, Lean Startup</p>
|
||||
</li>
|
||||
<li>
|
||||
<strong>Risk Management & Problem Solving</strong>
|
||||
<p>Identify risks early and develop solutions to ensure successful product delivery.</p>
|
||||
<p><strong>Tools/Methodologies:</strong> Risk Matrix, Root Cause Analysis, Fishbone Diagram</p>
|
||||
</li>
|
||||
</ul>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="p-5 mb-4 bg-body-tertiary rounded-3">
|
||||
<div class="container-fluid py-2">
|
||||
<h1 class="display-6 fw-bold">Education</h1>
|
||||
<ul class="col-md-8 fs-6">
|
||||
<li>BSc (Hon) Computer Studies (2.1) Teesside University, Middlesbrough, 2002 to 2004<br />
|
||||
<i>Dissertation on Medical Information System using Microsoft Technologies</i>
|
||||
</li>
|
||||
<li>
|
||||
HND Computing (Information Technology) Teesside University, Middlesbrough, 2000 to 2002
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="p-5 mb-4 bg-body-tertiary rounded-3">
|
||||
<div class="container-fluid py-2">
|
||||
<h1 class="display-6 fw-bold">Training & Certification</h1>
|
||||
<ul class="col-md-8 fs-6">
|
||||
<li>
|
||||
Certified Scrum Product Owner (CSPO) Scrum Alliance, 2022
|
||||
</li>
|
||||
<li>
|
||||
First Aid St John Ambulance Australia (NSW)
|
||||
</li>
|
||||
<li>
|
||||
ICARE Customer Services Course Interchange & Consort Hotels, York, 2011
|
||||
</li>
|
||||
<li>
|
||||
City & Guilds AutoCAD 2D & 3D Design York College of Further & Higher Education, York, 1999 to 2000
|
||||
</li>
|
||||
<li>
|
||||
8th Kyu Shodokan Aikido York, England
|
||||
</li>
|
||||
<li>
|
||||
7th Kyu Shorinji Kan Jiu Jitsu York, England
|
||||
</li>
|
||||
<li>
|
||||
2nd Kyu Kano Institute of Judo Randburg, South Africa
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
311
Views/Home/Clients.cshtml
Normal file
@@ -0,0 +1,311 @@
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "Clients";
|
||||
Layout = "~/Views/Shared/_Layout.cshtml";
|
||||
}
|
||||
|
||||
<div class="container py-4">
|
||||
<header class="pb-3 mb-4 border-bottom">
|
||||
<span class="fs-4"><i class="bi bi-people-fill"></i> @ViewData["Title"]</span>
|
||||
</header>
|
||||
<div class="p-5 mb-4 bg-body-tertiary rounded-3">
|
||||
<div class="container-fluid py-2">
|
||||
<h1 class="display-6 fw-bold">Telstra Health</h1>
|
||||
<p class="col-md-8 fs-6">Telstra Health is Australia’s largest eHealth software and technology company.</p>
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>Product Manager</strong><br />
|
||||
Sydney, September 2022 to Present
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
Defined quarterly product objectives and scope reporting to Product Lead of Digital Health Content
|
||||
</li>
|
||||
<li>
|
||||
Planned and estimated the product road-map within defined budget
|
||||
</li>
|
||||
<li>
|
||||
Maintained and prioritised product backlog for Clinical Content & AusDI products
|
||||
</li>
|
||||
<li>
|
||||
Engaged and managed key stakeholders throughout the product lifecycle
|
||||
</li>
|
||||
<li>
|
||||
Supported product sales and pre-sales activities
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="container-fluid py-2">
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>Product Owner</strong><br />
|
||||
Sydney, December 2020 to September 2022
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
Planned product road-map in line with product business strategy reporting to the General Manager of Hospitals and Connected Health
|
||||
</li>
|
||||
<li>
|
||||
Maintained and prioritised product backlog for Kyra Secure Messaging & eReferrals products
|
||||
</li>
|
||||
<li>
|
||||
Worked with delivery teams and key stakeholders to deliver positive customer and business outcomes
|
||||
</li>
|
||||
<li>
|
||||
Aided business development to deliver both government tendered and private sector healthcare solutions
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="p-5 mb-4 bg-body-tertiary rounded-3">
|
||||
<div class="container-fluid py-2">
|
||||
<h1 class="display-6 fw-bold">CoreLogic Asia Pacific</h1>
|
||||
|
||||
<p class="col-md-8 fs-6">
|
||||
CoreLogic is a global leading property market data and insights solutions provider within Australia, NewZealand and America.
|
||||
</p>
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>Snr. Professional Product Owner</strong> <br />Sydney, January 2020 to December 2020
|
||||
</p>
|
||||
<ul><li>
|
||||
Developed and executed product roadmap successfully achieving key business goals and KPI’s within budget
|
||||
</li>
|
||||
<li>
|
||||
Provided guidance to the recent sale’s agile delivery team in order to achieve business goals and objectives
|
||||
</li>
|
||||
<li>
|
||||
Collaborated with other businesses units and customer stakeholders to deliver positive customer outcomes
|
||||
</li>
|
||||
<li>
|
||||
Developed the business case for the Recent Sales division insight of the covid-19 pandemic
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="p-5 mb-4 bg-body-tertiary rounded-3">
|
||||
<div class="container-fluid py-2">
|
||||
<h1 class="display-6 fw-bold">MedicalDirector </h1>
|
||||
<p class="col-md-8 fs-6">
|
||||
MedicalDirector is a healthcare management software solutions and information provider and leader in the Australian market.
|
||||
</p>
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
Product Manager </strong><br />
|
||||
Sydney, May 2017 to Nov 2019
|
||||
</p>
|
||||
<ul><li>
|
||||
Developed product roadmap and managed product backlog for the Clinical Content division in line with the product strategy
|
||||
</li>
|
||||
<li>
|
||||
Managed the delivery of a business first Medicines DaaS from conception to initial customer contract
|
||||
</li>
|
||||
<li>
|
||||
Increased customer satisfaction and Net Promoter Score for AusDI by working with integration partners including the SHPA, IMGateway and FDB to deliver additional product offerings
|
||||
</li>
|
||||
<li>
|
||||
Enhanced efficiency and sustainability of pharmaceutical document management by managing the migration and delivery of a current version of Allette Systems PageSeeder
|
||||
</li>
|
||||
<li>
|
||||
Developed feature wireframes and mock-ups for AusDI desktop and mobile using insights from UX designers
|
||||
</li>
|
||||
<li>
|
||||
Delivering support and maintaining relationships for government state held health contracts
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="container-fluid py-2">
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
Senior Business Analyst
|
||||
</strong><br />
|
||||
Sydney, Dec 2016 to May 2017
|
||||
</p>
|
||||
<ul><li>
|
||||
Owned the customer requirements for the Clinical Content division
|
||||
</li>
|
||||
<li>
|
||||
Enhanced delivery management and efficiency of both business and technical processes
|
||||
</li>
|
||||
<li>
|
||||
Responsible for Agile process and Sprint management
|
||||
</li>
|
||||
<li>
|
||||
External and internal stakeholder management
|
||||
</li>
|
||||
<li>
|
||||
Leadership and management of delivery channels
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="p-5 mb-4 bg-body-tertiary rounded-3">
|
||||
<div class="container-fluid py-2">
|
||||
<h1 class="display-6 fw-bold">X Channel Marketing Ltd. </h1>
|
||||
<p class="col-md-8 fs-6">
|
||||
X Channel Marketing is a data services company specialising in retail data collection transformation and analysis.
|
||||
</p><p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
Business Analyst
|
||||
</strong><br />
|
||||
York, April 2016 to September 2016
|
||||
</p>
|
||||
<ul>
|
||||
<li> Enhanced business processes and delivered requirement documentation for client on boarding and change requests
|
||||
</li>
|
||||
<li>
|
||||
Improved business analysis process documentation
|
||||
</li>
|
||||
<li>
|
||||
Working with key stakeholders to deliver quality FRS documentation for new and existing clients
|
||||
</li>
|
||||
<li>
|
||||
Aiding in the delivery of an ETL data warehouse extension to their Active DB product offering for analysis of client marketing and sales data
|
||||
</li>
|
||||
<li>
|
||||
Working alongside existing and on boarding new consumer retail clients such as Getting Personal, Boohoo, Jack Wills and Ann Summers
|
||||
</li>
|
||||
<li>Project Managed internal and client projects
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="p-5 mb-4 bg-body-tertiary rounded-3">
|
||||
<div class="container-fluid py-2">
|
||||
<h1 class="display-6 fw-bold">World Nomads Group Pty Ltd. </h1>
|
||||
<p class="col-md-8 fs-6">
|
||||
nib Travel formerly World Nomads Group are an online travel insurance company specialising in providing short term insurance cover.
|
||||
</p>
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
Software Developer
|
||||
</strong><br />
|
||||
Sydney, Dec. 2014 to May 2015
|
||||
|
||||
</p> <ul>
|
||||
<li>
|
||||
Delivered customer focused application improvements across the four public brands World Nomads, SureSave, TID and Cheap Travel Insurance
|
||||
</li>
|
||||
<li>
|
||||
Use of Agile scrum for the full project life cycle
|
||||
</li>
|
||||
<li>
|
||||
Retrospectives, sprint planning sessions and backlog reviews
|
||||
</li>
|
||||
<li>
|
||||
Worked with product owner to manage product backlog and priorities user stories
|
||||
</li>
|
||||
<li>
|
||||
Peer to peer reviews of requirement/project documentation through Microsoft TFS
|
||||
</li>
|
||||
<li>
|
||||
Use of unit tests to meet acceptance criteria
|
||||
</li>
|
||||
<li>
|
||||
Backend business logic on an enterprise platform using C#, SQL, Microsoft.NET technologies
|
||||
</li>
|
||||
<li>
|
||||
Frontend UI design using MVC, HTML5, SASS and AngularJS, also working with Orchard CMS
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="p-5 mb-4 bg-body-tertiary rounded-3">
|
||||
<div class="container-fluid py-2">
|
||||
<h1 class="display-6 fw-bold">Maximus International Pty Ltd.</h1>
|
||||
<p class="col-md-8 fs-6">Maximus International are a business consultancy which provides leadership development and talent management services to some of the biggest business in Australia.</p>
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
Senior Software Developer / Business Analyst
|
||||
</strong><br />Hybrid role including full Business Systems Analysis responsibilities<br />
|
||||
Sydney, June 2011 to Oct. 2014
|
||||
|
||||
|
||||
</p> <ul>
|
||||
<li>
|
||||
Enhanced the IT offerings of the business by advising and leading the development of HR and business management application solutions following a SaaS business model delivering to clients including FitnessFirst, 3M, VW, Sibelco, Target, Johnson & Johnson, Telstra, BT Financial group, Cover-More, ING Direct and Asciano
|
||||
</li>
|
||||
<li>
|
||||
Performed needs analysis utilising the MoSCoW method to reach key stakeholders and build a business case for projects to follow an LSD approach
|
||||
</li>
|
||||
<li>
|
||||
Mapped out business process using BPMN, UML, Use Cases, and User Stories with the aid of tools including MS Visio and Sparx EA
|
||||
</li>
|
||||
<li>
|
||||
Developed wireframes using Balsamiq Mockups and AxureRP to aid in business requirement decisions and communicate requirements to developers
|
||||
</li>
|
||||
<li>
|
||||
Followed best practices to scope and communicated project estimations using MS Project
|
||||
</li>
|
||||
<li>
|
||||
Managed projects using Atlassian JIRA and user stories following the agile workflow methodology
|
||||
</li>
|
||||
<li>
|
||||
Facilitated product workshops for internal and external clients for training and user acceptance
|
||||
</li>
|
||||
<li>
|
||||
Initiated business and application solutions to handle and processes customer feedback
|
||||
</li>
|
||||
<li>
|
||||
Created market research reports and MS SSRS reports to aid in the business decision making process and monitoring performance
|
||||
</li>
|
||||
<li>
|
||||
Improved the marketability and functionality of their talent management software
|
||||
</li>
|
||||
<li>
|
||||
Enhanced business processes and brand image by developing and delivering a single business branded psychometric testing portal to deliver and manage 3rd party testing
|
||||
</li>
|
||||
<li>
|
||||
Reduced business operating costs by moving infrastructure to the Amazon AWS cloud
|
||||
</li>
|
||||
<li>
|
||||
Increased product offerings to include a cutting-edge cross platform knowledge management system to aid clients with self-development
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="p-5 mb-4 bg-body-tertiary rounded-3">
|
||||
<div class="container-fluid py-2">
|
||||
<h1 class="display-6 fw-bold">Best Western Hotels Ltd. </h1>
|
||||
<p class="col-md-8 fs-6">
|
||||
Best Western along with sister company Beacon Purchasing provide hotel marketing and management services to privately owned hotels.
|
||||
</p>
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>Software Developer / Analyst Programmer</strong><br />
|
||||
York, Apr. 2005 to Mar. 2011
|
||||
</p>
|
||||
<ul><li>
|
||||
Developed solutions enabling the business to gain market growth within the hospitality sector though marketing and automating business processes
|
||||
</li>
|
||||
<li>
|
||||
Worked with key stakeholders to perform business and systems analysis to deliver technical specifications with the aid of Use Case, UML, Class, Sequence, ERDs’ and design mock-ups
|
||||
</li>
|
||||
<li>
|
||||
Designed, developed, maintained and co-ordinated the development of bespoke web applications and e-commerce solutions largely for but not exclusive of marketing, accounting and membership departments within Best Western, Beacon and Interchange & Consort Hotels
|
||||
</li>
|
||||
<li>
|
||||
Consulted and worked with design, digital and search engine optimisation (SEO) agencies to deliver effective compliant solutions
|
||||
</li>
|
||||
<li>
|
||||
Implemented design patterns including repository and factory patterns following best practices
|
||||
</li>
|
||||
<li>
|
||||
Monitored, developed and maintained automated data work flows across the business
|
||||
</li>
|
||||
<li>
|
||||
Analysed requirements and delivered reports using Crystal Reports and CSV
|
||||
</li>
|
||||
<li>
|
||||
Mentored and supported junior members of the software development team
|
||||
</li>
|
||||
<li>
|
||||
Provided helpdesk support handling customer software related enquiries and trouble shooting
|
||||
</li>
|
||||
<li>
|
||||
ASP.NET, C#, VB.NET, ASP, SQL, HTML, CSS, JQuery, JavaScript, NHibernate, Unity and Subsonic
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
175
Views/Home/Index.cshtml
Normal file
@@ -0,0 +1,175 @@
|
||||
@model clivelancaster.Models.SubscribeFormModel
|
||||
@{
|
||||
ViewData["Title"] = "Home Page";
|
||||
}
|
||||
|
||||
<div id="myCarousel" class="carousel slide" data-bs-ride="carousel" data-bs-interval="5500">
|
||||
<div class="carousel-indicators">
|
||||
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
|
||||
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="1" aria-label="Slide 2"></button>
|
||||
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="2" aria-label="Slide 3"></button>
|
||||
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="3" aria-label="Slide 4"></button>
|
||||
</div>
|
||||
<div class="carousel-inner">
|
||||
<div class="carousel-item active">
|
||||
<div class="container">
|
||||
<div class="carousel-caption text-end">
|
||||
<h1>Unlock Growth Potential.</h1>
|
||||
<p>Our consulting services empower your business to achieve its full potential by aligning product strategies with your overarching goals. We help you create a clear product vision that resonates in the marketplace, ensuring your offerings are not just competitive but truly exceptional.</p>
|
||||
<p><a class="btn btn-lg btn-primary" href="/Contact">Get started today!</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<div class="container">
|
||||
<div class="carousel-caption text-end">
|
||||
<h1>Reduce Risk and Increase Efficiency.</h1>
|
||||
<p>By validating new product ideas and features before heavy investments, we help minimize financial risk. Our structured ideation process ensures that your resources are focused on initiatives with the highest potential for success.</p>
|
||||
<p><a class="btn btn-lg btn-primary" href="/Contact">Get started today!</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<div class="container">
|
||||
<div class="carousel-caption text-end">
|
||||
<h1>Streamline Product Lifecycle Management.</h1>
|
||||
<p>Our expertise in product lifecycle management enables you to take control of your product’s journey—from inception to market launch. We prioritize features that matter most to your customers and tackle technical challenges head-on, driving efficiency and effectiveness in your development processes.</p>
|
||||
<p><a class="btn btn-lg btn-primary" href="/Contact">Get started today!</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<div class="container">
|
||||
<div class="carousel-caption text-end">
|
||||
<h1>Achieve Sustainable Success.</h1>
|
||||
<p>With our comprehensive approach to product management, we not only help you meet immediate goals but also lay the groundwork for long-term growth and adaptability in a constantly evolving market.</p>
|
||||
<p><a class="btn btn-lg btn-primary" href="/Contact">Get started today!</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button class="carousel-control-prev" type="button" data-bs-target="#myCarousel" data-bs-slide="prev">
|
||||
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
|
||||
<span class="visually-hidden">Previous</span>
|
||||
</button>
|
||||
<button class="carousel-control-next" type="button" data-bs-target="#myCarousel" data-bs-slide="next">
|
||||
<span class="carousel-control-next-icon" aria-hidden="true"></span>
|
||||
<span class="visually-hidden">Next</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="container marketing">
|
||||
|
||||
<!-- Three columns of text below the carousel -->
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<svg class="bd-about-img rounded-circle" width="140" height="140" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="About" preserveAspectRatio="xMidYMid slice" focusable="false"><title>About</title><rect width="100%" height="100%" fill="none" /></svg>
|
||||
|
||||
<h2 class="fw-normal">About</h2>
|
||||
<p>Learn more about Clive Lancaster.</p>
|
||||
<p><a class="btn btn-secondary" href="/Home/About">View details »</a></p>
|
||||
</div><!-- /.col-lg-4 -->
|
||||
<div class="col-lg-4">
|
||||
<svg class="bd-clients-img rounded-circle" width="140" height="140" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Clients" preserveAspectRatio="xMidYMid slice" focusable="false"><title>Clients</title><rect width="100%" height="100%" fill="none" /></svg>
|
||||
<h2 class="fw-normal">Clients</h2>
|
||||
<p>Explore customer success stories.</p>
|
||||
<p><a class="btn btn-secondary" href="/Home/Clients">View details »</a></p>
|
||||
</div><!-- /.col-lg-4 -->
|
||||
<div class="col-lg-4">
|
||||
<svg class="bd-services-img rounded-circle" width="140" height="140" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Services" preserveAspectRatio="xMidYMid slice" focusable="false"><title>Services</title><rect width="100%" height="100%" fill="none" /></svg>
|
||||
<h2 class="fw-normal">Services</h2>
|
||||
<p>Discover capabilities and services.</p>
|
||||
<p><a class="btn btn-secondary" href="/Home/Services">View details »</a></p>
|
||||
</div><!-- /.col-lg-4 -->
|
||||
</div><!-- /.row -->
|
||||
|
||||
|
||||
<hr class="featurette-divider">
|
||||
|
||||
<div class="row featurette">
|
||||
<div class="col-md-7">
|
||||
<h2 class="featurette-heading fw-normal lh-1">Domain Expertise <span class="text-body-secondary">Across Key Industries.</span></h2>
|
||||
<p class="lead">With deep domain experience in medical, real estate, retail, hospitality, and human resources, services rendered bring tailored solutions that address the unique challenges of each sector. With a proven track record of delivering technology and product solutions that streamline operations, enhance customer experiences, and drive growth. Whether you need innovative healthcare platforms, cutting-edge retail solutions, or dynamic HR tools, expertises spanning a diverse range of industries.</p>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<img src="./img/banner-1.jpg" class="bd-placeholder-img bd-placeholder-img-lg featurette-image img-fluid mx-auto" width="500" height="500" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Domain" preserveAspectRatio="xMidYMid slice" focusable="false"><rect width="100%" height="100%" fill="var(--bs-secondary-bg)" /><text x="50%" y="50%" fill="var(--bs-secondary-color)" dy=".3em"></text>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="featurette-divider">
|
||||
|
||||
<div class="row featurette">
|
||||
<div class="col-md-7 order-md-2">
|
||||
<h2 class="featurette-heading fw-normal lh-1">Over 18 Years <span class="text-body-secondary"> of Product and Software Excellence.</span></h2>
|
||||
<p class="lead">Backed by over 18 years of experience in Product Management and Software Development, knowing how to take ideas from concept to market success. With a long-standing history of leading high-performing teams, launching world-class products, and driving digital transformation. From SaaS platforms to custom enterprise solutions, ensuring every product is built to meet business needs and exceed user expectations.</p>
|
||||
</div>
|
||||
<div class="col-md-5 order-md-1">
|
||||
<img src="./img/banner-2.jpg" class="bd-placeholder-img bd-placeholder-img-lg featurette-image img-fluid mx-auto" width="500" height="500" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Experience" preserveAspectRatio="xMidYMid slice" focusable="false"><rect width="100%" height="100%" fill="var(--bs-secondary-bg)" /><text x="50%" y="50%" fill="var(--bs-secondary-color)" dy=".3em"></text>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="featurette-divider">
|
||||
|
||||
<div class="row featurette">
|
||||
<div class="col-md-7">
|
||||
<h2 class="featurette-heading fw-normal lh-1">International Experience <span class="text-body-secondary">Across Europe and Asia Pacific.</span></h2>
|
||||
<p class="lead">With extensive international experience across Europe and the Asia Pacific, and an understanding of the complexities of global markets and diverse user needs. Our ability to navigate different cultures, regulatory environments, and market dynamics enables us to deliver products that scale internationally. Whether launching a new product in a local market or expanding globally, we leverage a global perspective to drive success across borders.</p>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<img src="./img/banner-3.jpg" class="bd-placeholder-img bd-placeholder-img-lg featurette-image img-fluid mx-auto" width="500" height="500" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="International" preserveAspectRatio="xMidYMid slice" focusable="false"><rect width="100%" height="100%" fill="var(--bs-secondary-bg)" /><text x="50%" y="50%" fill="var(--bs-secondary-color)" dy=".3em"></text>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="featurette-divider">
|
||||
|
||||
<section class="py-2 text-center container">
|
||||
<div class="row py-lg-2">
|
||||
<div class="col-lg-10 col-md-8 mx-auto">
|
||||
<h1 class="fw-light">Digital Product Management</h1>
|
||||
<p class="lead text-muted text-start">Partner with us to harness the full potential of your products and drive your business towards sustained success!</p>
|
||||
<p>
|
||||
<a href="/Contact" class="btn btn-primary my-2">Get started today!</a>
|
||||
<a href="/Home/About" class="btn btn-secondary my-2">Learn More</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<hr class="featurette-divider">
|
||||
|
||||
<div class="container">
|
||||
<footer class="py-1">
|
||||
<div class="row">
|
||||
<div class="col-6 col-md-3 mb-3">
|
||||
<h5>Overview</h5>
|
||||
<ul class="nav flex-column">
|
||||
|
||||
<li class="nav-item mb-2"><a href="/Home/About" class="nav-link p-0 text-body-secondary">About</a></li>
|
||||
<li class="nav-item mb-2"><a href="/Home/Services" class="nav-link p-0 text-body-secondary">Services</a></li>
|
||||
<li class="nav-item mb-2"><a href="/Home/Clients" class="nav-link p-0 text-body-secondary">Clients</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-6 col-md-3 mb-3">
|
||||
<h5>News</h5>
|
||||
<ul class="nav flex-column">
|
||||
<li class="nav-item mb-2"><a href="https://blog.clivelancaster.com" class="nav-link p-0 text-body-secondary">Blog</a></li>
|
||||
<li class="nav-item mb-2"><a href="/Contact" class="nav-link p-0 text-body-secondary">Contact</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col-md-5 offset-md-1 mb-2">
|
||||
<form asp-action="Index" method="post">
|
||||
<h5>Subscribe to our newsletter</h5>
|
||||
<p>Monthly digest of what's new and exciting from us.</p>
|
||||
<div class="d-flex flex-column flex-sm-row w-100 gap-2">
|
||||
<label asp-for="email" for="email" class="visually-hidden">Email address</label>
|
||||
<input asp-for="email" id="email" type="text" class="form-control" placeholder="Email address">
|
||||
<span asp-validation-for="email" class="text-danger"></span>
|
||||
<button class="btn btn-primary" type="submit">Subscribe</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
99
Views/Home/Privacy.cshtml
Normal file
@@ -0,0 +1,99 @@
|
||||
@{
|
||||
ViewData["Title"] = "Privacy Policy";
|
||||
}
|
||||
|
||||
<div class="container py-4">
|
||||
<header class="pb-3 mb-4 border-bottom">
|
||||
<span class="fs-4">@ViewData["Title"]</span>
|
||||
</header>
|
||||
<div class="p-5 mb-4 bg-body-tertiary rounded-3">
|
||||
<div class="container-fluid py-2">
|
||||
<h1 class="display-6 fw-bold">Privacy Policy</h1>
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>Introduction</strong>
|
||||
</p><p class="col-md-8 fs-6">
|
||||
At Clive Lancaster, we are committed to protecting your privacy and ensuring the security of your personal information. This Privacy Policy outlines how we collect, use, and protect the information you provide to us when you use our website. By accessing or using our website, you agree to the terms of this Privacy Policy.
|
||||
</p><p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
Information We Collect</strong>
|
||||
</p><p class="col-md-8 fs-6">
|
||||
We may collect the following types of information when you visit our website:
|
||||
</p><ol>
|
||||
<li>
|
||||
Personal Information: This includes information you voluntarily provide, such as your name, email address, phone number, or other contact details when you fill out forms, sign up for newsletters, or contact us.
|
||||
</li><li>
|
||||
Non-Personal Information: We collect non-personally identifiable information automatically as you interact with our website, such as IP addresses, browser type, device information, and browsing behavior through cookies or analytics tools.
|
||||
</li>
|
||||
Cookies: Our website uses cookies to enhance your user experience. Cookies are small files stored on your device that help us analyze site traffic, improve functionality, and personalize content. You can adjust your browser settings to decline cookies, but this may affect your experience on our website.
|
||||
</li>
|
||||
</ol><p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
How We Use Your Information</strong>
|
||||
</p><p class="col-md-8 fs-6">
|
||||
We use the information we collect to:
|
||||
</p><ul>
|
||||
<li> Provide and improve our website’s functionality and services.
|
||||
</li> <li>Respond to your inquiries or requests.
|
||||
</li>
|
||||
<li>
|
||||
Send you relevant updates, newsletters, or marketing materials (if you have opted in).
|
||||
</li>
|
||||
<li>
|
||||
Analyze website usage and trends to enhance your experience.
|
||||
</li>
|
||||
<li>
|
||||
Ensure the security and integrity of our website.
|
||||
</li>
|
||||
<li>How We Share Your Information
|
||||
</li>
|
||||
</ul><p class="col-md-8 fs-6">
|
||||
We do not sell, trade, or rent your personal information to third parties. However, we may share your information with trusted service providers who assist us in operating our website, conducting business, or servicing you, provided they agree to keep your information confidential.
|
||||
</p><p class="col-md-8 fs-6">
|
||||
We may also disclose your information if required by law, to enforce our website policies, or to protect our or others’ rights, property, or safety.
|
||||
</p><p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
Third-Party Links</strong>
|
||||
</p><p class="col-md-8 fs-6">
|
||||
Our website may contain links to third-party websites. We are not responsible for the privacy practices of these external sites. We encourage you to review the privacy policies of any third-party websites you visit.
|
||||
</p><p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
Data Security</strong>
|
||||
</p><p class="col-md-8 fs-6">
|
||||
We take appropriate measures to safeguard your personal information from unauthorized access, alteration, or disclosure. However, no method of transmission over the internet or electronic storage is completely secure, and we cannot guarantee its absolute security.
|
||||
</p><p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
Your Rights</strong>
|
||||
</p><p class="col-md-8 fs-6">
|
||||
You have the right to:
|
||||
</p><ul>
|
||||
<li>
|
||||
|
||||
Access, update, or delete your personal information.
|
||||
</li>
|
||||
<li>
|
||||
Opt out of receiving marketing communications from us.
|
||||
</li>
|
||||
<li>
|
||||
Request that we limit the use of your personal information.
|
||||
</li>
|
||||
<li>
|
||||
To exercise any of these rights, please contact us.
|
||||
</li>
|
||||
</ul><p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
Changes to This Privacy Policy</strong>
|
||||
</p><p class="col-md-8 fs-6">
|
||||
We may update this Privacy Policy from time to time to reflect changes in our practices or legal requirements. We will notify you of any significant changes by posting the revised policy on our website.
|
||||
</p><p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
Contact Us</strong>
|
||||
</p><p class="col-md-8 fs-6">
|
||||
If you have any questions or concerns about this Privacy Policy or how we handle your personal information, please contact us at:
|
||||
</p><p class="col-md-8 fs-6">
|
||||
Clive Lancaster
|
||||
</p><p class="col-md-8 fs-6">
|
||||
Effective Date: 01/11/2024
|
||||
</p>
|
||||
</<div>
|
||||
</div>
|
||||
</div>
|
||||
129
Views/Home/Services.cshtml
Normal file
@@ -0,0 +1,129 @@
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "Services";
|
||||
Layout = "~/Views/Shared/_Layout.cshtml";
|
||||
}
|
||||
|
||||
<div class="container py-4 album bg-grey">
|
||||
<header class="pb-3 mb-4 border-bottom">
|
||||
<span class="fs-4"><i class="bi bi-box-fill"></i> Services</span>
|
||||
</header>
|
||||
<div class="container px-4 py-5 bg-body-tertiary rounded-3" id="hanging-icons">
|
||||
<h1 class="display-6 fw-bold">Services</h1>
|
||||
<div class="row g-4 py-5 row-cols-1 row-cols-lg-3">
|
||||
<div class="col d-flex align-items-start">
|
||||
<div class="icon-square text-body-emphasis bg-body-secondary d-inline-flex align-items-center justify-content-center fs-4 flex-shrink-0 me-3">
|
||||
<i class="bi bi-bar-chart-steps" width="1em" height="1em"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h3 class="fs-2 text-body-emphasis">Product Management</h3>
|
||||
<p>Paragraph of text beneath the heading to explain the heading. We'll add onto it with another sentence and probably just keep going until we run out of words.</p>
|
||||
<a href="/Contact" class="btn btn-primary">
|
||||
Enquire Today!
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col d-flex align-items-start">
|
||||
<div class="icon-square text-body-emphasis bg-body-secondary d-inline-flex align-items-center justify-content-center fs-4 flex-shrink-0 me-3">
|
||||
<i class="bi bi-kanban" width="1em" height="1em"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h3 class="fs-2 text-body-emphasis">Product Owner</h3>
|
||||
<p>Paragraph of text beneath the heading to explain the heading. We'll add onto it with another sentence and probably just keep going until we run out of words.</p>
|
||||
<a href="/Contact" class="btn btn-primary">
|
||||
Enquire Today!
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col d-flex align-items-start">
|
||||
<div class="icon-square text-body-emphasis bg-body-secondary d-inline-flex align-items-center justify-content-center fs-4 flex-shrink-0 me-3">
|
||||
<i class="bi bi-clipboard2-data-fill" width="1em" height="1em"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h3 class="fs-2 text-body-emphasis">Business Analysis</h3>
|
||||
<p>Paragraph of text beneath the heading to explain the heading. We'll add onto it with another sentence and probably just keep going until we run out of words.</p>
|
||||
<a href="/Contact" class="btn btn-primary">
|
||||
Enquire Today!
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row g-4 py-5 row-cols-1 row-cols-lg-3">
|
||||
<div class="col d-flex align-items-start">
|
||||
<div class="icon-square text-body-emphasis bg-body-secondary d-inline-flex align-items-center justify-content-center fs-4 flex-shrink-0 me-3">
|
||||
<i class="bi bi-code-slash" width="1em" height="1em"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h3 class="fs-2 text-body-emphasis">Software Development</h3>
|
||||
<p>Paragraph of text beneath the heading to explain the heading. We'll add onto it with another sentence and probably just keep going until we run out of words.</p>
|
||||
<a href="/Contact" class="btn btn-primary">
|
||||
Enquire Today!
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col d-flex align-items-start">
|
||||
<div class="icon-square text-body-emphasis bg-body-secondary d-inline-flex align-items-center justify-content-center fs-4 flex-shrink-0 me-3">
|
||||
<i class="bi bi-diagram-3-fill" width="1em" height="1em"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h3 class="fs-2 text-body-emphasis">Systems Analysis</h3>
|
||||
<p>Paragraph of text beneath the heading to explain the heading. We'll add onto it with another sentence and probably just keep going until we run out of words.</p>
|
||||
<a href="/Contact" class="btn btn-primary">
|
||||
Enquire Today!
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col d-flex align-items-start">
|
||||
<div class="icon-square text-body-emphasis bg-body-secondary d-inline-flex align-items-center justify-content-center fs-4 flex-shrink-0 me-3">
|
||||
<i class="bi bi-rulers" width="1em" height="1em"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h3 class="fs-2 text-body-emphasis">Computer-aided design (CAD)</h3>
|
||||
<p>Paragraph of text beneath the heading to explain the heading. We'll add onto it with another sentence and probably just keep going until we run out of words.</p>
|
||||
<a href="/Contact" class="btn btn-primary">
|
||||
Enquire Today!
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row g-4 py-5 row-cols-1 row-cols-lg-3">
|
||||
<div class="col d-flex align-items-start">
|
||||
<div class="icon-square text-body-emphasis bg-body-secondary d-inline-flex align-items-center justify-content-center fs-4 flex-shrink-0 me-3">
|
||||
<i class="bi bi-camera-fill" width="1em" height="1em"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h3 class="fs-2 text-body-emphasis">Photography</h3>
|
||||
<p>Paragraph of text beneath the heading to explain the heading. We'll add onto it with another sentence and probably just keep going until we run out of words.</p>
|
||||
<a href="/Contact" class="btn btn-primary">
|
||||
Enquire Today!
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col d-flex align-items-start">
|
||||
<div class="icon-square text-body-emphasis bg-body-secondary d-inline-flex align-items-center justify-content-center fs-4 flex-shrink-0 me-3">
|
||||
<i class="bi bi-camera-reels-fill" width="1em" height="1em"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h3 class="fs-2 text-body-emphasis">Videography</h3>
|
||||
<p>Paragraph of text beneath the heading to explain the heading. We'll add onto it with another sentence and probably just keep going until we run out of words.</p>
|
||||
<a href="/Contact" class="btn btn-primary">
|
||||
Enquire Today!
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col d-flex align-items-start">
|
||||
<div class="icon-square text-body-emphasis bg-body-secondary d-inline-flex align-items-center justify-content-center fs-4 flex-shrink-0 me-3">
|
||||
<i class="bi bi-hdd-network-fill" width="1em" height="1em"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h3 class="fs-2 text-body-emphasis">Networking</h3>
|
||||
<p>Paragraph of text beneath the heading to explain the heading. We'll add onto it with another sentence and probably just keep going until we run out of words.</p>
|
||||
<a href="/Contact" class="btn btn-primary">
|
||||
Enquire Today!
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
90
Views/Home/Terms.cshtml
Normal file
@@ -0,0 +1,90 @@
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "Terms";
|
||||
Layout = "~/Views/Shared/_Layout.cshtml";
|
||||
}
|
||||
|
||||
<div class="container py-4">
|
||||
<header class="pb-3 mb-4 border-bottom">
|
||||
<span class="fs-4">@ViewData["Title"]</span>
|
||||
</header>
|
||||
<div class="p-5 mb-4 bg-body-tertiary rounded-3">
|
||||
<div class="container-fluid py-2">
|
||||
<h1 class="display-6 fw-bold">Terms & Conditions</h1>
|
||||
<p class="col-md-8 fs-6">
|
||||
Last Updated: 01/11/2024
|
||||
|
||||
</p>
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong> 1. Acceptance of Terms</strong><br />
|
||||
By accessing and using clivelancaster.com (the "Site"), you agree to be bound by these Terms and Conditions (the "Terms"). If you do not agree to these Terms, please do not use the Site. These Terms apply to all visitors, users, and others who access or use the Site.
|
||||
</p>
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
2. Changes to Terms
|
||||
</strong><br />
|
||||
We reserve the right to modify these Terms at any time. Any changes will be effective immediately upon posting to the Site. It is your responsibility to review the Terms regularly. Your continued use of the Site after the posting of changes constitutes your acceptance of the revised Terms.
|
||||
</p>
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
3. Use of the Site
|
||||
</strong><br />
|
||||
You agree to use the Site for lawful purposes only and in a way that does not infringe on the rights of, restrict, or inhibit anyone else's use of the Site. Prohibited behavior includes harassing or causing distress or inconvenience to any other user, transmitting obscene or offensive content, or disrupting the normal flow of dialogue within the Site.
|
||||
</p>
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
4. Intellectual Property
|
||||
</strong><br />
|
||||
All content on the Site, including but not limited to text, graphics, logos, icons, images, and software, is the property of clivelancaster.com or its content suppliers and is protected by copyright, trademark, and other intellectual property laws. You may not use, copy, reproduce, distribute, or exploit any content from the Site without express written permission from clivelancaster.com.
|
||||
</p>
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
5. User-Generated Content
|
||||
</strong><br />
|
||||
You may have the opportunity to post comments, reviews, or other content to the Site. By submitting such content, you grant clivelancaster.com a non-exclusive, royalty-free, perpetual, and worldwide license to use, reproduce, modify, publish, and display such content in any media. You are solely responsible for the content you post, and you agree not to post content that is unlawful, defamatory, obscene, or infringing on intellectual property rights.
|
||||
</p>
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
6. Third-Party Links
|
||||
</strong><br />
|
||||
The Site may contain links to third-party websites or services that are not owned or controlled by clivelancaster.com. We are not responsible for the content, privacy policies, or practices of any third-party websites. You acknowledge and agree that [Website Name] is not liable for any damage or loss caused by or in connection with the use of any such third-party websites or services.
|
||||
</p>
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
7. Disclaimers
|
||||
</strong><br />
|
||||
The content on the Site is provided "as is" without warranties of any kind, either express or implied. clivelancaster.com does not guarantee the accuracy, completeness, or reliability of any content or material on the Site. Use of the Site and reliance on any information obtained from the Site is at your own risk.
|
||||
</p>
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
8. Limitation of Liability
|
||||
</strong><br />
|
||||
To the fullest extent permitted by law, clivelancaster.com shall not be liable for any direct, indirect, incidental, special, or consequential damages resulting from the use or inability to use the Site, including but not limited to damages for loss of profits, goodwill, data, or other intangible losses.
|
||||
</p>
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
9. Indemnification
|
||||
</strong><br />
|
||||
You agree to indemnify, defend, and hold harmless clivelancaster.com and its officers, directors, employees, and agents from any claims, liabilities, damages, losses, or expenses, including legal fees, arising out of your use of the Site or your violation of these Terms.
|
||||
</p>
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
10. Termination
|
||||
</strong><br />
|
||||
We reserve the right to terminate or suspend your access to the Site at any time, with or without notice, for any violation of these Terms or for any other reason.
|
||||
</p>
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
11. Governing Law
|
||||
</strong><br />
|
||||
These Terms are governed by and construed in accordance with the laws of Australia. Any disputes arising from or relating to the use of the Site shall be subject to the exclusive jurisdiction of the courts in Australia.
|
||||
</p>
|
||||
<p class="col-md-8 fs-6">
|
||||
<strong>
|
||||
12. Contact Information
|
||||
</strong><br />
|
||||
If you have any questions about these Terms, please contact us.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
29
Views/Home/ThankYou.cshtml
Normal file
@@ -0,0 +1,29 @@
|
||||
@{
|
||||
ViewData["Title"] = "Thank You";
|
||||
Layout = "~/Views/Shared/_Layout.cshtml";
|
||||
}
|
||||
|
||||
<div class="container py-4">
|
||||
<header class="pb-3 mb-4 border-bottom">
|
||||
<span class="fs-4">@ViewData["Title"]</span>
|
||||
</header>
|
||||
<div class="p-5 mb-4 bg-body-tertiary rounded-3">
|
||||
<div class="container-fluid py-2">
|
||||
<h1 class="display-6 fw-bold">Thank You for Subscribing!</h1>
|
||||
<p class="col-md-8 fs-6">
|
||||
We’re thrilled to have you as part of our community.
|
||||
</p><p class="col-md-8 fs-6">
|
||||
We look forward to keeping you up to date with the latest news, industry insights, and exclusive updates to help you stay ahead in Product Management and Software Developent.
|
||||
</p><p class="col-md-8 fs-6">
|
||||
If you ever have any questions or feedback, feel free to reach out we’re here to help!
|
||||
</p><p class="col-md-8 fs-6">
|
||||
Thanks again for subscribing, and stay tuned for exciting content coming your way soon.
|
||||
</p>
|
||||
<p class="col-md-8 fs-6">
|
||||
<a href="/Home/Index" class="btn btn-primary">
|
||||
Explore!
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
25
Views/Shared/Error.cshtml
Normal file
@@ -0,0 +1,25 @@
|
||||
@model ErrorViewModel
|
||||
@{
|
||||
ViewData["Title"] = "Error";
|
||||
}
|
||||
|
||||
<h1 class="text-danger">Error.</h1>
|
||||
<h2 class="text-danger">An error occurred while processing your request.</h2>
|
||||
|
||||
@if (Model.ShowRequestId)
|
||||
{
|
||||
<p>
|
||||
<strong>Request ID:</strong> <code>@Model.RequestId</code>
|
||||
</p>
|
||||
}
|
||||
|
||||
<h3>Development Mode</h3>
|
||||
<p>
|
||||
Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.
|
||||
</p>
|
||||
<p>
|
||||
<strong>The Development environment shouldn't be enabled for deployed applications.</strong>
|
||||
It can result in displaying sensitive information from exceptions to end users.
|
||||
For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
|
||||
and restarting the app.
|
||||
</p>
|
||||
74
Views/Shared/_Layout.cshtml
Normal file
@@ -0,0 +1,74 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="description" content="Clive Lancaster - Digital Product Manager">
|
||||
<meta name="keywords" content="product, manager, owner, health, strategy, customer, commercial, management, agile, digital, clive, lancaster">
|
||||
<meta name="author" content="Clive Lancaster">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>@ViewData["Title"] - Clive Lancaster - Digital Product Manager</title>
|
||||
<link rel="stylesheet" href="~/lib/bootstrap/css/bootstrap.min.css" />
|
||||
<link href="~/lib/bootstrap-icons/font/bootstrap-icons.min.css" rel="stylesheet" />
|
||||
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
|
||||
<link rel="stylesheet" href="~/css/carousel.css" asp-append-version="true" />
|
||||
<link rel="stylesheet" href="~/clivelancaster.styles.css" asp-append-version="true" />
|
||||
<script defer data-domain="clivelancaster.com" src="https://analytics.rokoh.com/js/script.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-dark bg-navy border-bottom box-shadow fixed-top mb-3">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">CLIVE LANCASTER</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
|
||||
aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
|
||||
<ul class="navbar-nav flex-grow-1">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" asp-area="" asp-controller="Home" asp-action="Index"><i class="bi bi-house-fill"></i> Home</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" asp-area="" asp-controller="Home" asp-action="About"><i class="bi bi-file-person-fill"></i> About</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" asp-area="" asp-controller="Home" asp-action="Services"><i class="bi bi-box-fill"></i> Services</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" asp-area="" asp-controller="Home" asp-action="Clients"><i class="bi bi-people-fill"></i> Clients</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="https://blog.clivelancaster.com" class="nav-link"><i class="bi bi-substack"></i> Blog</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" asp-area="" asp-controller="Contact" asp-action="Index"><i class="bi bi-envelope-fill"></i> Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<main role="main" class="pb-3">
|
||||
@RenderBody()
|
||||
</main>
|
||||
|
||||
<div class="container">
|
||||
<footer class="py-2">
|
||||
<div class="d-flex flex-column flex-sm-row justify-content-between py-4 my-4 border-top">
|
||||
<p>Clive Lancaster © 2024 - <a style="color:#212529bf;" asp-area="" asp-controller="Home" asp-action="Privacy">Privacy Policy</a> | <a style="color:#212529bf;" asp-area="" asp-controller="Home" asp-action="Terms">Terms</a></p>
|
||||
<ul class="list-unstyled d-flex">
|
||||
<li class="ms-3"><a class="link-body-emphasis" href="https://www.linkedin.com/in/clivelancaster/"><i class="bi bi-linkedin"></i></a></li>
|
||||
<li class="ms-3"><a class="link-body-emphasis" href="https://x.com/clivelancaster"><i class="bi bi-twitter-x"></i></a></li>
|
||||
<li class="ms-3"><a class="link-body-emphasis" href="https://www.youtube.com/@@CliveLancaster/"><i class="bi bi-youtube"></i></a></li>
|
||||
<li class="ms-3"><a class="link-body-emphasis" href="https://www.instagram.com/shotreact/"><i class="bi bi-instagram"></i></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
<script src="~/lib/jquery/dist/jquery.min.js"></script>
|
||||
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="~/js/site.js" asp-append-version="true"></script>
|
||||
@await RenderSectionAsync("Scripts", required: false)
|
||||
</body>
|
||||
</html>
|
||||
52
Views/Shared/_Layout.cshtml.css
Normal file
@@ -0,0 +1,52 @@
|
||||
/* Please see documentation at https://learn.microsoft.com/aspnet/core/client-side/bundling-and-minification
|
||||
for details on configuring this project to bundle and minify static web assets. */
|
||||
|
||||
.navbar > .container {
|
||||
flex-direction: row-reverse;
|
||||
}
|
||||
|
||||
a.navbar-brand {
|
||||
white-space: normal;
|
||||
text-align: center;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #808080;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
color: #fff;
|
||||
background-color: #1b6ec2;
|
||||
border-color: #1861ac;
|
||||
}
|
||||
|
||||
.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
|
||||
color: #fff;
|
||||
background-color: #1b6ec2;
|
||||
border-color: #1861ac;
|
||||
}
|
||||
|
||||
.border-top {
|
||||
border-top: 1px solid #e5e5e5;
|
||||
}
|
||||
.border-bottom {
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
/*.box-shadow {
|
||||
box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
|
||||
}*/
|
||||
|
||||
button.accept-policy {
|
||||
font-size: 1rem;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
.footer {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
white-space: nowrap;
|
||||
line-height: 60px;
|
||||
}
|
||||
2
Views/Shared/_ValidationScriptsPartial.cshtml
Normal file
@@ -0,0 +1,2 @@
|
||||
<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
|
||||
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
|
||||
3
Views/_ViewImports.cshtml
Normal file
@@ -0,0 +1,3 @@
|
||||
@using clivelancaster
|
||||
@using clivelancaster.Models
|
||||
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
||||
3
Views/_ViewStart.cshtml
Normal file
@@ -0,0 +1,3 @@
|
||||
@{
|
||||
Layout = "_Layout";
|
||||
}
|
||||
8
appsettings.Development.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
}
|
||||
}
|
||||
18
appsettings.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"SmtpSettings": {
|
||||
"Host": "smtp.gmail.com",
|
||||
"Port": 465,
|
||||
"Username": "clivelancaster@gmail.com",
|
||||
"Password": "ilzk zwwq odrt ndjm"
|
||||
},
|
||||
"ConnectionStrings": {
|
||||
"DefaultConnection": "Host=10.1.1.20;Database=clive;Username=clive;Password=Money247!"
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
||||
27
clivelancaster.csproj
Normal file
@@ -0,0 +1,27 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<UserSecretsId>c49070fc-9fd8-4ae0-9905-2b77ba84a157</UserSecretsId>
|
||||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
||||
<DockerfileContext>.</DockerfileContext>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="MailKit" Version="4.8.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Razor.Language" Version="6.0.35" />
|
||||
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.21.0" />
|
||||
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="8.0.6" />
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.10" />
|
||||
<PackageReference Include="System.Text.Json" Version="8.0.5" />
|
||||
<PackageReference Include="System.Windows.Extensions" Version="8.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="wwwroot\img\" />
|
||||
<Folder Include="wwwroot\doc\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
25
clivelancaster.sln
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.11.35327.3
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "clivelancaster", "clivelancaster.csproj", "{8E5797A7-BA34-4DF8-AA46-5FD77C646739}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{8E5797A7-BA34-4DF8-AA46-5FD77C646739}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8E5797A7-BA34-4DF8-AA46-5FD77C646739}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8E5797A7-BA34-4DF8-AA46-5FD77C646739}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{8E5797A7-BA34-4DF8-AA46-5FD77C646739}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {58B857BD-838B-4259-8026-BA4A9F3F657E}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
14
libman.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"version": "1.0",
|
||||
"defaultProvider": "cdnjs",
|
||||
"libraries": [
|
||||
{
|
||||
"library": "bootstrap@5.3.3",
|
||||
"destination": "wwwroot/lib/bootstrap/"
|
||||
},
|
||||
{
|
||||
"library": "bootstrap-icons@1.11.3",
|
||||
"destination": "wwwroot/lib/bootstrap-icons/"
|
||||
}
|
||||
]
|
||||
}
|
||||
95
wwwroot/css/carousel.css
Normal file
@@ -0,0 +1,95 @@
|
||||
/* GLOBAL STYLES
|
||||
-------------------------------------------------- */
|
||||
/* Padding below the footer and lighter body text */
|
||||
|
||||
body {
|
||||
padding-top: 3rem;
|
||||
padding-bottom: 3rem;
|
||||
color: #5a5a5a;
|
||||
}
|
||||
|
||||
|
||||
/* CUSTOMIZE THE CAROUSEL
|
||||
-------------------------------------------------- */
|
||||
|
||||
/* Carousel base class */
|
||||
.carousel {
|
||||
margin-bottom: 4rem;
|
||||
}
|
||||
/* Since positioning the image, we need to help out the caption */
|
||||
.carousel-caption {
|
||||
bottom: 3rem;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
/* Declare heights because of positioning of img element */
|
||||
.carousel-item {
|
||||
height: 32rem;
|
||||
}
|
||||
|
||||
.carousel-item > img {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
min-width: 100%;
|
||||
height: 32rem;
|
||||
}
|
||||
|
||||
|
||||
/* MARKETING CONTENT
|
||||
-------------------------------------------------- */
|
||||
|
||||
/* Center align the text within the three columns below the carousel */
|
||||
.marketing .col-lg-4 {
|
||||
margin-bottom: 1.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.marketing h2 {
|
||||
font-weight: 400;
|
||||
}
|
||||
/* rtl:begin:ignore */
|
||||
.marketing .col-lg-4 p {
|
||||
margin-right: .75rem;
|
||||
margin-left: .75rem;
|
||||
}
|
||||
/* rtl:end:ignore */
|
||||
|
||||
|
||||
/* Featurettes
|
||||
------------------------- */
|
||||
|
||||
.featurette-divider {
|
||||
margin: 5rem 0; /* Space out the Bootstrap <hr> more */
|
||||
}
|
||||
|
||||
/* Thin out the marketing headings */
|
||||
.featurette-heading {
|
||||
font-weight: 300;
|
||||
line-height: 1;
|
||||
/* rtl:remove */
|
||||
letter-spacing: -.05rem;
|
||||
}
|
||||
|
||||
|
||||
/* RESPONSIVE CSS
|
||||
-------------------------------------------------- */
|
||||
|
||||
@media (min-width: 40em) {
|
||||
/* Bump up size of carousel content */
|
||||
.carousel-caption p {
|
||||
margin-bottom: 1.25rem;
|
||||
font-size: 1.25rem;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.featurette-heading {
|
||||
font-size: 50px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 62em) {
|
||||
.featurette-heading {
|
||||
margin-top: 7rem;
|
||||
}
|
||||
}
|
||||
160
wwwroot/css/site.css
Normal file
@@ -0,0 +1,160 @@
|
||||
:root {
|
||||
/* Dark theme */
|
||||
--dark-background: #eaeff2;
|
||||
--dark-foregeound: #808080;
|
||||
/* Light theme */
|
||||
--light-background: #eaeff2;
|
||||
--light-foregeound: #808080;
|
||||
/* Defaults */
|
||||
--current-background: var(--light-background);
|
||||
--current-foreground: var(--light-foregeound);
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background-color: #005e94;
|
||||
border-color: #005e94;
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
background-color: #0473b3;
|
||||
border-color: #0473b3;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
: root {
|
||||
--current-background: var(--dark-background);
|
||||
--current-foreground: var(--dark-foregeound);
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: var(--current-background);
|
||||
color: var(--current-foreground);
|
||||
}
|
||||
|
||||
html {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.bg-navy {
|
||||
background-color: #005e94ff;
|
||||
}
|
||||
|
||||
.bg-grey {
|
||||
background-color: #eaeff2;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
html {
|
||||
font-size: 16px;
|
||||
}
|
||||
.carousel-caption p {
|
||||
padding-left: 140px;
|
||||
}
|
||||
.bd-placeholder-img-lg {
|
||||
font-size: 3.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
|
||||
box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #fff;
|
||||
}
|
||||
|
||||
html {
|
||||
position: relative;
|
||||
min-height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
|
||||
.carousel-inner {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-position: left;
|
||||
background-size: 100% 100%;
|
||||
background-repeat: no-repeat;
|
||||
background-image: url('../img/bg-01.png');
|
||||
}
|
||||
|
||||
.carousel-inner h1 {
|
||||
color:#5a5a5a;
|
||||
}
|
||||
|
||||
.carousel-inner p {
|
||||
color: #5a5a5a;
|
||||
}
|
||||
|
||||
.bd-placeholder-img {
|
||||
font-size: 1.125rem;
|
||||
text-anchor: middle;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.bd-about-img {
|
||||
font-size: 1.125rem;
|
||||
text-anchor: middle;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
background-image: url('../img/member-1.jpg');
|
||||
background-size: 150px;
|
||||
}
|
||||
|
||||
.bd-clients-img {
|
||||
font-size: 1.125rem;
|
||||
text-anchor: middle;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
background-image: url('../img/member-2.jpg');
|
||||
background-size: 150px;
|
||||
}
|
||||
|
||||
.bd-services-img {
|
||||
font-size: 1.125rem;
|
||||
text-anchor: middle;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
background-image: url('../img/member-3.jpg');
|
||||
background-size: 150px;
|
||||
}
|
||||
|
||||
.feature-icon {
|
||||
width: 4rem;
|
||||
height: 4rem;
|
||||
border-radius: .75rem;
|
||||
}
|
||||
|
||||
.icon-square {
|
||||
width: 3rem;
|
||||
height: 3rem;
|
||||
border-radius: .75rem;
|
||||
}
|
||||
|
||||
.text-shadow-1 {
|
||||
text-shadow: 0 .125rem .25rem rgba(0, 0, 0, .25);
|
||||
}
|
||||
|
||||
.text-shadow-2 {
|
||||
text-shadow: 0 .25rem .5rem rgba(0, 0, 0, .25);
|
||||
}
|
||||
|
||||
.text-shadow-3 {
|
||||
text-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .25);
|
||||
}
|
||||
|
||||
.card-cover {
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.feature-icon-small {
|
||||
width: 3rem;
|
||||
height: 3rem;
|
||||
}
|
||||
BIN
wwwroot/favicon.ico
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
wwwroot/img/author.jpg
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
wwwroot/img/banner-1.jpg
Normal file
|
After Width: | Height: | Size: 254 KiB |
BIN
wwwroot/img/banner-2.jpg
Normal file
|
After Width: | Height: | Size: 181 KiB |
BIN
wwwroot/img/banner-3.jpg
Normal file
|
After Width: | Height: | Size: 444 KiB |
BIN
wwwroot/img/bg-01.png
Normal file
|
After Width: | Height: | Size: 283 KiB |
BIN
wwwroot/img/member-1.jpg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
wwwroot/img/member-2.jpg
Normal file
|
After Width: | Height: | Size: 239 KiB |
BIN
wwwroot/img/member-3.jpg
Normal file
|
After Width: | Height: | Size: 306 KiB |
4
wwwroot/js/site.js
Normal file
@@ -0,0 +1,4 @@
|
||||
// Please see documentation at https://learn.microsoft.com/aspnet/core/client-side/bundling-and-minification
|
||||
// for details on configuring this project to bundle and minify static web assets.
|
||||
|
||||
// Write your JavaScript code.
|
||||
1
wwwroot/lib/bootstrap-icons/bootstrap-icons.svg
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
2078
wwwroot/lib/bootstrap-icons/font/bootstrap-icons.css
vendored
Normal file
2052
wwwroot/lib/bootstrap-icons/font/bootstrap-icons.json
Normal file
5
wwwroot/lib/bootstrap-icons/font/bootstrap-icons.min.css
vendored
Normal file
BIN
wwwroot/lib/bootstrap-icons/font/fonts/bootstrap-icons.woff
Normal file
BIN
wwwroot/lib/bootstrap-icons/font/fonts/bootstrap-icons.woff2
Normal file
4
wwwroot/lib/bootstrap-icons/icons/0-circle-fill.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-0-circle-fill" viewBox="0 0 16 16">
|
||||
<path d="M8 4.951c-1.008 0-1.629 1.09-1.629 2.895v.31c0 1.81.627 2.895 1.629 2.895s1.623-1.09 1.623-2.895v-.31c0-1.8-.621-2.895-1.623-2.895"/>
|
||||
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-8.012 4.158c1.858 0 2.96-1.582 2.96-3.99V7.84c0-2.426-1.079-3.996-2.936-3.996-1.864 0-2.965 1.588-2.965 3.996v.328c0 2.42 1.09 3.99 2.941 3.99"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 476 B |
4
wwwroot/lib/bootstrap-icons/icons/0-circle.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-0-circle" viewBox="0 0 16 16">
|
||||
<path d="M7.988 12.158c-1.851 0-2.941-1.57-2.941-3.99V7.84c0-2.408 1.101-3.996 2.965-3.996 1.857 0 2.935 1.57 2.935 3.996v.328c0 2.408-1.101 3.99-2.959 3.99M8 4.951c-1.008 0-1.629 1.09-1.629 2.895v.31c0 1.81.627 2.895 1.629 2.895s1.623-1.09 1.623-2.895v-.31c0-1.8-.621-2.895-1.623-2.895"/>
|
||||
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 507 B |
4
wwwroot/lib/bootstrap-icons/icons/0-square-fill.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-0-square-fill" viewBox="0 0 16 16">
|
||||
<path d="M8 4.951c-1.008 0-1.629 1.09-1.629 2.895v.31c0 1.81.627 2.895 1.629 2.895s1.623-1.09 1.623-2.895v-.31c0-1.8-.621-2.895-1.623-2.895"/>
|
||||
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm5.988 12.158c-1.851 0-2.941-1.57-2.941-3.99V7.84c0-2.408 1.101-3.996 2.965-3.996 1.857 0 2.935 1.57 2.935 3.996v.328c0 2.408-1.101 3.99-2.959 3.99"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 514 B |
4
wwwroot/lib/bootstrap-icons/icons/0-square.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-0-square" viewBox="0 0 16 16">
|
||||
<path d="M7.988 12.158c-1.851 0-2.941-1.57-2.941-3.99V7.84c0-2.408 1.101-3.996 2.965-3.996 1.857 0 2.935 1.57 2.935 3.996v.328c0 2.408-1.101 3.99-2.959 3.99M8 4.951c-1.008 0-1.629 1.09-1.629 2.895v.31c0 1.81.627 2.895 1.629 2.895s1.623-1.09 1.623-2.895v-.31c0-1.8-.621-2.895-1.623-2.895"/>
|
||||
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 579 B |
3
wwwroot/lib/bootstrap-icons/icons/1-circle-fill.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-1-circle-fill" viewBox="0 0 16 16">
|
||||
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M9.283 4.002H7.971L6.072 5.385v1.271l1.834-1.318h.065V12h1.312z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 250 B |
3
wwwroot/lib/bootstrap-icons/icons/1-circle.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-1-circle" viewBox="0 0 16 16">
|
||||
<path d="M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8m15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0M9.283 4.002V12H7.971V5.338h-.065L6.072 6.656V5.385l1.899-1.383z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 279 B |
3
wwwroot/lib/bootstrap-icons/icons/1-square-fill.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-1-square-fill" viewBox="0 0 16 16">
|
||||
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm7.283 4.002V12H7.971V5.338h-.065L6.072 6.656V5.385l1.899-1.383z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 286 B |
4
wwwroot/lib/bootstrap-icons/icons/1-square.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-1-square" viewBox="0 0 16 16">
|
||||
<path d="M9.283 4.002V12H7.971V5.338h-.065L6.072 6.656V5.385l1.899-1.383z"/>
|
||||
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 366 B |
3
wwwroot/lib/bootstrap-icons/icons/123.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-123" viewBox="0 0 16 16">
|
||||
<path d="M2.873 11.297V4.142H1.699L0 5.379v1.137l1.64-1.18h.06v5.961zm3.213-5.09v-.063c0-.618.44-1.169 1.196-1.169.676 0 1.174.44 1.174 1.106 0 .624-.42 1.101-.807 1.526L4.99 10.553v.744h4.78v-.99H6.643v-.069L8.41 8.252c.65-.724 1.237-1.332 1.237-2.27C9.646 4.849 8.723 4 7.308 4c-1.573 0-2.36 1.064-2.36 2.15v.057zm6.559 1.883h.786c.823 0 1.374.481 1.379 1.179.01.707-.55 1.216-1.421 1.21-.77-.005-1.326-.419-1.379-.953h-1.095c.042 1.053.938 1.918 2.464 1.918 1.478 0 2.642-.839 2.62-2.144-.02-1.143-.922-1.651-1.551-1.714v-.063c.535-.09 1.347-.66 1.326-1.678-.026-1.053-.933-1.855-2.359-1.845-1.5.005-2.317.88-2.348 1.898h1.116c.032-.498.498-.944 1.206-.944.703 0 1.206.435 1.206 1.07.005.64-.504 1.106-1.2 1.106h-.75z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 854 B |
3
wwwroot/lib/bootstrap-icons/icons/2-circle-fill.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-2-circle-fill" viewBox="0 0 16 16">
|
||||
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M6.646 6.24c0-.691.493-1.306 1.336-1.306.756 0 1.313.492 1.313 1.236 0 .697-.469 1.23-.902 1.705l-2.971 3.293V12h5.344v-1.107H7.268v-.077l1.974-2.22.096-.107c.688-.763 1.287-1.428 1.287-2.43 0-1.266-1.031-2.215-2.613-2.215-1.758 0-2.637 1.19-2.637 2.402v.065h1.271v-.07Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 457 B |
3
wwwroot/lib/bootstrap-icons/icons/2-circle.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-2-circle" viewBox="0 0 16 16">
|
||||
<path d="M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8m15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0M6.646 6.24v.07H5.375v-.064c0-1.213.879-2.402 2.637-2.402 1.582 0 2.613.949 2.613 2.215 0 1.002-.6 1.667-1.287 2.43l-.096.107-1.974 2.22v.077h3.498V12H5.422v-.832l2.97-3.293c.434-.475.903-1.008.903-1.705 0-.744-.557-1.236-1.313-1.236-.843 0-1.336.615-1.336 1.306"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 477 B |
3
wwwroot/lib/bootstrap-icons/icons/2-square-fill.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-2-square-fill" viewBox="0 0 16 16">
|
||||
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm4.646 6.24v.07H5.375v-.064c0-1.213.879-2.402 2.637-2.402 1.582 0 2.613.949 2.613 2.215 0 1.002-.6 1.667-1.287 2.43l-.096.107-1.974 2.22v.077h3.498V12H5.422v-.832l2.97-3.293c.434-.475.903-1.008.903-1.705 0-.744-.557-1.236-1.313-1.236-.843 0-1.336.615-1.336 1.306"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 484 B |
4
wwwroot/lib/bootstrap-icons/icons/2-square.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-2-square" viewBox="0 0 16 16">
|
||||
<path d="M6.646 6.24v.07H5.375v-.064c0-1.213.879-2.402 2.637-2.402 1.582 0 2.613.949 2.613 2.215 0 1.002-.6 1.667-1.287 2.43l-.096.107-1.974 2.22v.077h3.498V12H5.422v-.832l2.97-3.293c.434-.475.903-1.008.903-1.705 0-.744-.557-1.236-1.313-1.236-.843 0-1.336.615-1.336 1.306"/>
|
||||
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 564 B |
3
wwwroot/lib/bootstrap-icons/icons/3-circle-fill.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-3-circle-fill" viewBox="0 0 16 16">
|
||||
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-8.082.414c.92 0 1.535.54 1.541 1.318.012.791-.615 1.36-1.588 1.354-.861-.006-1.482-.469-1.54-1.066H5.104c.047 1.177 1.05 2.144 2.754 2.144 1.653 0 2.954-.937 2.93-2.396-.023-1.278-1.031-1.846-1.734-1.916v-.07c.597-.1 1.505-.739 1.482-1.876-.03-1.177-1.043-2.074-2.637-2.062-1.675.006-2.59.984-2.625 2.12h1.248c.036-.556.557-1.054 1.348-1.054.785 0 1.348.486 1.348 1.195.006.715-.563 1.237-1.342 1.237h-.838v1.072h.879Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 607 B |
4
wwwroot/lib/bootstrap-icons/icons/3-circle.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-3-circle" viewBox="0 0 16 16">
|
||||
<path d="M7.918 8.414h-.879V7.342h.838c.78 0 1.348-.522 1.342-1.237 0-.709-.563-1.195-1.348-1.195-.79 0-1.312.498-1.348 1.055H5.275c.036-1.137.95-2.115 2.625-2.121 1.594-.012 2.608.885 2.637 2.062.023 1.137-.885 1.776-1.482 1.875v.07c.703.07 1.71.64 1.734 1.917.024 1.459-1.277 2.396-2.93 2.396-1.705 0-2.707-.967-2.754-2.144H6.33c.059.597.68 1.06 1.541 1.066.973.006 1.6-.563 1.588-1.354-.006-.779-.621-1.318-1.541-1.318"/>
|
||||
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 642 B |
3
wwwroot/lib/bootstrap-icons/icons/3-square-fill.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-3-square-fill" viewBox="0 0 16 16">
|
||||
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm5.918 8.414h-.879V7.342h.838c.78 0 1.348-.522 1.342-1.237 0-.709-.563-1.195-1.348-1.195-.79 0-1.312.498-1.348 1.055H5.275c.036-1.137.95-2.115 2.625-2.121 1.594-.012 2.608.885 2.637 2.062.023 1.137-.885 1.776-1.482 1.875v.07c.703.07 1.71.64 1.734 1.917.024 1.459-1.277 2.396-2.93 2.396-1.705 0-2.707-.967-2.754-2.144H6.33c.059.597.68 1.06 1.541 1.066.973.006 1.6-.563 1.588-1.354-.006-.779-.621-1.318-1.541-1.318"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 634 B |
4
wwwroot/lib/bootstrap-icons/icons/3-square.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-3-square" viewBox="0 0 16 16">
|
||||
<path d="M7.918 8.414h-.879V7.342h.838c.78 0 1.348-.522 1.342-1.237 0-.709-.563-1.195-1.348-1.195-.79 0-1.312.498-1.348 1.055H5.275c.036-1.137.95-2.115 2.625-2.121 1.594-.012 2.608.885 2.637 2.062.023 1.137-.885 1.776-1.482 1.875v.07c.703.07 1.71.64 1.734 1.917.024 1.459-1.277 2.396-2.93 2.396-1.705 0-2.707-.967-2.754-2.144H6.33c.059.597.68 1.06 1.541 1.066.973.006 1.6-.563 1.588-1.354-.006-.779-.621-1.318-1.541-1.318"/>
|
||||
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 714 B |
3
wwwroot/lib/bootstrap-icons/icons/4-circle-fill.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-4-circle-fill" viewBox="0 0 16 16">
|
||||
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M7.519 5.057c-.886 1.418-1.772 2.838-2.542 4.265v1.12H8.85V12h1.26v-1.559h1.007V9.334H10.11V4.002H8.176zM6.225 9.281v.053H8.85V5.063h-.065c-.867 1.33-1.787 2.806-2.56 4.218"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 359 B |
4
wwwroot/lib/bootstrap-icons/icons/4-circle.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-4-circle" viewBox="0 0 16 16">
|
||||
<path d="M7.519 5.057q.33-.527.657-1.055h1.933v5.332h1.008v1.107H10.11V12H8.85v-1.559H4.978V9.322c.77-1.427 1.656-2.847 2.542-4.265ZM6.225 9.281v.053H8.85V5.063h-.065c-.867 1.33-1.787 2.806-2.56 4.218"/>
|
||||
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 421 B |
4
wwwroot/lib/bootstrap-icons/icons/4-square-fill.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-4-square-fill" viewBox="0 0 16 16">
|
||||
<path d="M6.225 9.281v.053H8.85V5.063h-.065c-.867 1.33-1.787 2.806-2.56 4.218"/>
|
||||
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm5.519 5.057q.33-.527.657-1.055h1.933v5.332h1.008v1.107H10.11V12H8.85v-1.559H4.978V9.322c.77-1.427 1.656-2.847 2.542-4.265Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 428 B |
4
wwwroot/lib/bootstrap-icons/icons/4-square.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-4-square" viewBox="0 0 16 16">
|
||||
<path d="M7.519 5.057q.33-.527.657-1.055h1.933v5.332h1.008v1.107H10.11V12H8.85v-1.559H4.978V9.322c.77-1.427 1.656-2.847 2.542-4.265ZM6.225 9.281v.053H8.85V5.063h-.065c-.867 1.33-1.787 2.806-2.56 4.218"/>
|
||||
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 493 B |
3
wwwroot/lib/bootstrap-icons/icons/5-circle-fill.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-5-circle-fill" viewBox="0 0 16 16">
|
||||
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-8.006 4.158c1.74 0 2.924-1.119 2.924-2.806 0-1.641-1.178-2.584-2.56-2.584-.897 0-1.442.421-1.612.68h-.064l.193-2.344h3.621V4.002H5.791L5.445 8.63h1.149c.193-.358.668-.809 1.435-.809.85 0 1.582.604 1.582 1.57 0 1.085-.779 1.682-1.57 1.682-.697 0-1.389-.31-1.53-1.031H5.276c.065 1.213 1.149 2.115 2.72 2.115Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 495 B |
3
wwwroot/lib/bootstrap-icons/icons/5-circle.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-5-circle" viewBox="0 0 16 16">
|
||||
<path d="M1 8a7 7 0 1 1 14 0A7 7 0 0 1 1 8m15 0A8 8 0 1 0 0 8a8 8 0 0 0 16 0m-8.006 4.158c-1.57 0-2.654-.902-2.719-2.115h1.237c.14.72.832 1.031 1.529 1.031.791 0 1.57-.597 1.57-1.681 0-.967-.732-1.57-1.582-1.57-.767 0-1.242.45-1.435.808H5.445L5.791 4h4.705v1.103H6.875l-.193 2.343h.064c.17-.258.715-.68 1.611-.68 1.383 0 2.561.944 2.561 2.585 0 1.687-1.184 2.806-2.924 2.806Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 514 B |
3
wwwroot/lib/bootstrap-icons/icons/5-square-fill.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-5-square-fill" viewBox="0 0 16 16">
|
||||
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm5.994 12.158c-1.57 0-2.654-.902-2.719-2.115h1.237c.14.72.832 1.031 1.529 1.031.791 0 1.57-.597 1.57-1.681 0-.967-.732-1.57-1.582-1.57-.767 0-1.242.45-1.435.808H5.445L5.791 4h4.705v1.103H6.875l-.193 2.343h.064c.17-.258.715-.68 1.611-.68 1.383 0 2.561.944 2.561 2.585 0 1.687-1.184 2.806-2.924 2.806Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 521 B |
4
wwwroot/lib/bootstrap-icons/icons/5-square.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-5-square" viewBox="0 0 16 16">
|
||||
<path d="M7.994 12.158c-1.57 0-2.654-.902-2.719-2.115h1.237c.14.72.832 1.031 1.529 1.031.791 0 1.57-.597 1.57-1.681 0-.967-.732-1.57-1.582-1.57-.767 0-1.242.45-1.435.808H5.445L5.791 4h4.705v1.103H6.875l-.193 2.343h.064c.17-.258.715-.68 1.611-.68 1.383 0 2.561.944 2.561 2.585 0 1.687-1.184 2.806-2.924 2.806Z"/>
|
||||
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 601 B |
3
wwwroot/lib/bootstrap-icons/icons/6-circle-fill.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-6-circle-fill" viewBox="0 0 16 16">
|
||||
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M8.21 3.855c-1.868 0-3.116 1.395-3.116 4.407 0 1.183.228 2.039.597 2.642.569.926 1.477 1.254 2.409 1.254 1.629 0 2.847-1.013 2.847-2.783 0-1.676-1.254-2.555-2.508-2.555-1.125 0-1.752.61-1.98 1.155h-.082c-.012-1.946.727-3.036 1.805-3.036.802 0 1.213.457 1.312.815h1.29c-.06-.908-.962-1.899-2.573-1.899Zm-.099 4.008c-.92 0-1.564.65-1.564 1.576 0 1.032.703 1.635 1.558 1.635.868 0 1.553-.533 1.553-1.629 0-1.06-.744-1.582-1.547-1.582"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 617 B |
3
wwwroot/lib/bootstrap-icons/icons/6-circle.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-6-circle" viewBox="0 0 16 16">
|
||||
<path d="M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8m15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0M8.21 3.855c1.612 0 2.515.99 2.573 1.899H9.494c-.1-.358-.51-.815-1.312-.815-1.078 0-1.817 1.09-1.805 3.036h.082c.229-.545.855-1.155 1.98-1.155 1.254 0 2.508.88 2.508 2.555 0 1.77-1.218 2.783-2.847 2.783-.932 0-1.84-.328-2.409-1.254-.369-.603-.597-1.459-.597-2.642 0-3.012 1.248-4.407 3.117-4.407Zm-.099 4.008c-.92 0-1.564.65-1.564 1.576 0 1.032.703 1.635 1.558 1.635.868 0 1.553-.533 1.553-1.629 0-1.06-.744-1.582-1.547-1.582"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 640 B |
4
wwwroot/lib/bootstrap-icons/icons/6-square-fill.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-6-square-fill" viewBox="0 0 16 16">
|
||||
<path d="M8.111 7.863c-.92 0-1.564.65-1.564 1.576 0 1.032.703 1.635 1.558 1.635.868 0 1.553-.533 1.553-1.629 0-1.06-.744-1.582-1.547-1.582"/>
|
||||
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm6.21 3.855c1.612 0 2.515.99 2.573 1.899H9.494c-.1-.358-.51-.815-1.312-.815-1.078 0-1.817 1.09-1.805 3.036h.082c.229-.545.855-1.155 1.98-1.155 1.254 0 2.508.88 2.508 2.555 0 1.77-1.218 2.783-2.847 2.783-.932 0-1.84-.328-2.409-1.254-.369-.603-.597-1.459-.597-2.642 0-3.012 1.248-4.407 3.117-4.407Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 662 B |
4
wwwroot/lib/bootstrap-icons/icons/6-square.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-6-square" viewBox="0 0 16 16">
|
||||
<path d="M8.21 3.855c1.612 0 2.515.99 2.573 1.899H9.494c-.1-.358-.51-.815-1.312-.815-1.078 0-1.817 1.09-1.805 3.036h.082c.229-.545.855-1.155 1.98-1.155 1.254 0 2.508.88 2.508 2.555 0 1.77-1.218 2.783-2.847 2.783-.932 0-1.84-.328-2.409-1.254-.369-.603-.597-1.459-.597-2.642 0-3.012 1.248-4.407 3.117-4.407Zm-.099 4.008c-.92 0-1.564.65-1.564 1.576 0 1.032.703 1.635 1.558 1.635.868 0 1.553-.533 1.553-1.629 0-1.06-.744-1.582-1.547-1.582"/>
|
||||
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 727 B |
3
wwwroot/lib/bootstrap-icons/icons/7-circle-fill.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-7-circle-fill" viewBox="0 0 16 16">
|
||||
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M5.37 5.11h3.972v.07L6.025 12H7.42l3.258-6.85V4.002H5.369v1.107Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 251 B |
3
wwwroot/lib/bootstrap-icons/icons/7-circle.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-7-circle" viewBox="0 0 16 16">
|
||||
<path d="M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8m15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0M5.37 5.11V4.001h5.308V5.15L7.42 12H6.025l3.317-6.82v-.07H5.369Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 279 B |
3
wwwroot/lib/bootstrap-icons/icons/7-square-fill.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-7-square-fill" viewBox="0 0 16 16">
|
||||
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm3.37 5.11V4.001h5.308V5.15L7.42 12H6.025l3.317-6.82v-.07H5.369Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 286 B |
4
wwwroot/lib/bootstrap-icons/icons/7-square.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-7-square" viewBox="0 0 16 16">
|
||||
<path d="M5.37 5.11V4.001h5.308V5.15L7.42 12H6.025l3.317-6.82v-.07H5.369Z"/>
|
||||
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 366 B |
3
wwwroot/lib/bootstrap-icons/icons/8-circle-fill.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-8-circle-fill" viewBox="0 0 16 16">
|
||||
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-5.03 1.803c0-1.248-.943-1.84-1.646-1.992v-.065c.598-.187 1.336-.72 1.336-1.781 0-1.225-1.084-2.121-2.654-2.121s-2.66.896-2.66 2.12c0 1.044.709 1.589 1.33 1.782v.065c-.697.152-1.647.732-1.647 2.003 0 1.39 1.19 2.344 2.953 2.344 1.77 0 2.989-.96 2.989-2.355Zm-4.347-3.71c0 .739.586 1.255 1.383 1.255s1.377-.516 1.377-1.254c0-.733-.58-1.23-1.377-1.23s-1.383.497-1.383 1.23Zm-.281 3.645c0 .838.72 1.412 1.664 1.412.943 0 1.658-.574 1.658-1.412 0-.843-.715-1.424-1.658-1.424-.944 0-1.664.58-1.664 1.424"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 686 B |
3
wwwroot/lib/bootstrap-icons/icons/8-circle.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-8-circle" viewBox="0 0 16 16">
|
||||
<path d="M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8m15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-5.03 1.803c0 1.394-1.218 2.355-2.988 2.355-1.763 0-2.953-.955-2.953-2.344 0-1.271.95-1.851 1.647-2.003v-.065c-.621-.193-1.33-.738-1.33-1.781 0-1.225 1.09-2.121 2.66-2.121s2.654.896 2.654 2.12c0 1.061-.738 1.595-1.336 1.782v.065c.703.152 1.647.744 1.647 1.992Zm-4.347-3.71c0 .739.586 1.255 1.383 1.255s1.377-.516 1.377-1.254c0-.733-.58-1.23-1.377-1.23s-1.383.497-1.383 1.23Zm-.281 3.645c0 .838.72 1.412 1.664 1.412.943 0 1.658-.574 1.658-1.412 0-.843-.715-1.424-1.658-1.424-.944 0-1.664.58-1.664 1.424"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 717 B |
4
wwwroot/lib/bootstrap-icons/icons/8-square-fill.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-8-square-fill" viewBox="0 0 16 16">
|
||||
<path d="M6.623 6.094c0 .738.586 1.254 1.383 1.254s1.377-.516 1.377-1.254c0-.733-.58-1.23-1.377-1.23s-1.383.497-1.383 1.23m-.281 3.644c0 .838.72 1.412 1.664 1.412.943 0 1.658-.574 1.658-1.412 0-.843-.715-1.424-1.658-1.424-.944 0-1.664.58-1.664 1.424"/>
|
||||
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm8.97 9.803c0 1.394-1.218 2.355-2.988 2.355-1.763 0-2.953-.955-2.953-2.344 0-1.271.95-1.851 1.647-2.003v-.065c-.621-.193-1.33-.738-1.33-1.781 0-1.225 1.09-2.121 2.66-2.121s2.654.896 2.654 2.12c0 1.061-.738 1.595-1.336 1.782v.065c.703.152 1.647.744 1.647 1.992Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 737 B |
4
wwwroot/lib/bootstrap-icons/icons/8-square.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-8-square" viewBox="0 0 16 16">
|
||||
<path d="M10.97 9.803c0 1.394-1.218 2.355-2.988 2.355-1.763 0-2.953-.955-2.953-2.344 0-1.271.95-1.851 1.647-2.003v-.065c-.621-.193-1.33-.738-1.33-1.781 0-1.225 1.09-2.121 2.66-2.121s2.654.896 2.654 2.12c0 1.061-.738 1.595-1.336 1.782v.065c.703.152 1.647.744 1.647 1.992Zm-4.347-3.71c0 .739.586 1.255 1.383 1.255s1.377-.516 1.377-1.254c0-.733-.58-1.23-1.377-1.23s-1.383.497-1.383 1.23Zm-.281 3.645c0 .838.72 1.412 1.664 1.412.943 0 1.658-.574 1.658-1.412 0-.843-.715-1.424-1.658-1.424-.944 0-1.664.58-1.664 1.424"/>
|
||||
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 804 B |
3
wwwroot/lib/bootstrap-icons/icons/9-circle-fill.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-9-circle-fill" viewBox="0 0 16 16">
|
||||
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-8.223 4.146c2.104 0 3.123-1.464 3.123-4.3 0-3.147-1.459-4.014-2.97-4.014-1.63 0-2.871 1.02-2.871 2.73 0 1.706 1.171 2.667 2.566 2.667 1.06 0 1.7-.557 1.934-1.184h.076c.047 1.67-.475 3.023-1.834 3.023-.71 0-1.149-.363-1.248-.72H5.258c.094.908.926 1.798 2.52 1.798Zm.118-3.972c.808 0 1.535-.528 1.535-1.594s-.668-1.676-1.56-1.676c-.838 0-1.517.616-1.517 1.659 0 1.072.708 1.61 1.54 1.61Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 574 B |
3
wwwroot/lib/bootstrap-icons/icons/9-circle.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-9-circle" viewBox="0 0 16 16">
|
||||
<path d="M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8m15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-8.223 4.146c-1.593 0-2.425-.89-2.52-1.798h1.296c.1.357.539.72 1.248.72 1.36 0 1.88-1.353 1.834-3.023h-.076c-.235.627-.873 1.184-1.934 1.184-1.395 0-2.566-.961-2.566-2.666 0-1.711 1.242-2.731 2.87-2.731 1.512 0 2.971.867 2.971 4.014 0 2.836-1.02 4.3-3.123 4.3m.118-3.972c.808 0 1.535-.528 1.535-1.594s-.668-1.676-1.56-1.676c-.838 0-1.517.616-1.517 1.659 0 1.072.708 1.61 1.54 1.61Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 597 B |
4
wwwroot/lib/bootstrap-icons/icons/9-square-fill.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-9-square-fill" viewBox="0 0 16 16">
|
||||
<path d="M7.895 8.174c.808 0 1.535-.528 1.535-1.594s-.668-1.676-1.56-1.676c-.838 0-1.517.616-1.517 1.659 0 1.072.708 1.61 1.54 1.61Z"/>
|
||||
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm5.777 12.146c-1.593 0-2.425-.89-2.52-1.798h1.296c.1.357.539.72 1.248.72 1.36 0 1.88-1.353 1.834-3.023h-.076c-.235.627-.873 1.184-1.934 1.184-1.395 0-2.566-.961-2.566-2.666 0-1.711 1.242-2.731 2.87-2.731 1.512 0 2.971.867 2.971 4.014 0 2.836-1.02 4.3-3.123 4.3"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 620 B |
4
wwwroot/lib/bootstrap-icons/icons/9-square.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-9-square" viewBox="0 0 16 16">
|
||||
<path d="M7.777 12.146c-1.593 0-2.425-.89-2.52-1.798h1.296c.1.357.539.72 1.248.72 1.36 0 1.88-1.353 1.834-3.023h-.076c-.235.627-.873 1.184-1.934 1.184-1.395 0-2.566-.961-2.566-2.666 0-1.711 1.242-2.731 2.87-2.731 1.512 0 2.971.867 2.971 4.014 0 2.836-1.02 4.3-3.123 4.3m.118-3.972c.808 0 1.535-.528 1.535-1.594s-.668-1.676-1.56-1.676c-.838 0-1.517.616-1.517 1.659 0 1.072.708 1.61 1.54 1.61Z"/>
|
||||
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 684 B |
3
wwwroot/lib/bootstrap-icons/icons/activity.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-activity" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M6 2a.5.5 0 0 1 .47.33L10 12.036l1.53-4.208A.5.5 0 0 1 12 7.5h3.5a.5.5 0 0 1 0 1h-3.15l-1.88 5.17a.5.5 0 0 1-.94 0L6 3.964 4.47 8.171A.5.5 0 0 1 4 8.5H.5a.5.5 0 0 1 0-1h3.15l1.88-5.17A.5.5 0 0 1 6 2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 366 B |
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-airplane-engines-fill" viewBox="0 0 16 16">
|
||||
<path d="M8 0c-.787 0-1.292.592-1.572 1.151A4.35 4.35 0 0 0 6 3v3.691l-2 1V7.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.191l-1.17.585A1.5 1.5 0 0 0 0 10.618V12a.5.5 0 0 0 .582.493l1.631-.272.313.937a.5.5 0 0 0 .948 0l.405-1.214 2.21-.369.375 2.253-1.318 1.318A.5.5 0 0 0 5.5 16h5a.5.5 0 0 0 .354-.854l-1.318-1.318.375-2.253 2.21.369.405 1.214a.5.5 0 0 0 .948 0l.313-.937 1.63.272A.5.5 0 0 0 16 12v-1.382a1.5 1.5 0 0 0-.83-1.342L14 8.691V7.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v.191l-2-1V3c0-.568-.14-1.271-.428-1.849C9.292.591 8.787 0 8 0"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 687 B |
3
wwwroot/lib/bootstrap-icons/icons/airplane-engines.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-airplane-engines" viewBox="0 0 16 16">
|
||||
<path d="M8 0c-.787 0-1.292.592-1.572 1.151A4.35 4.35 0 0 0 6 3v3.691l-2 1V7.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.191l-1.17.585A1.5 1.5 0 0 0 0 10.618V12a.5.5 0 0 0 .582.493l1.631-.272.313.937a.5.5 0 0 0 .948 0l.405-1.214 2.21-.369.375 2.253-1.318 1.318A.5.5 0 0 0 5.5 16h5a.5.5 0 0 0 .354-.854l-1.318-1.318.375-2.253 2.21.369.405 1.214a.5.5 0 0 0 .948 0l.313-.937 1.63.272A.5.5 0 0 0 16 12v-1.382a1.5 1.5 0 0 0-.83-1.342L14 8.691V7.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v.191l-2-1V3c0-.568-.14-1.271-.428-1.849C9.292.591 8.787 0 8 0M7 3c0-.432.11-.979.322-1.401C7.542 1.159 7.787 1 8 1s.458.158.678.599C8.889 2.02 9 2.569 9 3v4a.5.5 0 0 0 .276.447l5.448 2.724a.5.5 0 0 1 .276.447v.792l-5.418-.903a.5.5 0 0 0-.575.41l-.5 3a.5.5 0 0 0 .14.437l.646.646H6.707l.647-.646a.5.5 0 0 0 .14-.436l-.5-3a.5.5 0 0 0-.576-.411L1 11.41v-.792a.5.5 0 0 1 .276-.447l5.448-2.724A.5.5 0 0 0 7 7z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
3
wwwroot/lib/bootstrap-icons/icons/airplane-fill.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-airplane-fill" viewBox="0 0 16 16">
|
||||
<path d="M6.428 1.151C6.708.591 7.213 0 8 0s1.292.592 1.572 1.151C9.861 1.73 10 2.431 10 3v3.691l5.17 2.585a1.5 1.5 0 0 1 .83 1.342V12a.5.5 0 0 1-.582.493l-5.507-.918-.375 2.253 1.318 1.318A.5.5 0 0 1 10.5 16h-5a.5.5 0 0 1-.354-.854l1.319-1.318-.376-2.253-5.507.918A.5.5 0 0 1 0 12v-1.382a1.5 1.5 0 0 1 .83-1.342L6 6.691V3c0-.568.14-1.271.428-1.849"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 492 B |
3
wwwroot/lib/bootstrap-icons/icons/airplane.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-airplane" viewBox="0 0 16 16">
|
||||
<path d="M6.428 1.151C6.708.591 7.213 0 8 0s1.292.592 1.572 1.151C9.861 1.73 10 2.431 10 3v3.691l5.17 2.585a1.5 1.5 0 0 1 .83 1.342V12a.5.5 0 0 1-.582.493l-5.507-.918-.375 2.253 1.318 1.318A.5.5 0 0 1 10.5 16h-5a.5.5 0 0 1-.354-.854l1.319-1.318-.376-2.253-5.507.918A.5.5 0 0 1 0 12v-1.382a1.5 1.5 0 0 1 .83-1.342L6 6.691V3c0-.568.14-1.271.428-1.849m.894.448C7.111 2.02 7 2.569 7 3v4a.5.5 0 0 1-.276.447l-5.448 2.724a.5.5 0 0 0-.276.447v.792l5.418-.903a.5.5 0 0 1 .575.41l.5 3a.5.5 0 0 1-.14.437L6.708 15h2.586l-.647-.646a.5.5 0 0 1-.14-.436l.5-3a.5.5 0 0 1 .576-.411L15 11.41v-.792a.5.5 0 0 0-.276-.447L9.276 7.447A.5.5 0 0 1 9 7V3c0-.432-.11-.979-.322-1.401C8.458 1.159 8.213 1 8 1s-.458.158-.678.599"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 840 B |
3
wwwroot/lib/bootstrap-icons/icons/alarm-fill.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-alarm-fill" viewBox="0 0 16 16">
|
||||
<path d="M6 .5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1H9v1.07a7.001 7.001 0 0 1 3.274 12.474l.601.602a.5.5 0 0 1-.707.708l-.746-.746A6.97 6.97 0 0 1 8 16a6.97 6.97 0 0 1-3.422-.892l-.746.746a.5.5 0 0 1-.707-.708l.602-.602A7.001 7.001 0 0 1 7 2.07V1h-.5A.5.5 0 0 1 6 .5m2.5 5a.5.5 0 0 0-1 0v3.362l-1.429 2.38a.5.5 0 1 0 .858.515l1.5-2.5A.5.5 0 0 0 8.5 9zM.86 5.387A2.5 2.5 0 1 1 4.387 1.86 8.04 8.04 0 0 0 .86 5.387M11.613 1.86a2.5 2.5 0 1 1 3.527 3.527 8.04 8.04 0 0 0-3.527-3.527"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 615 B |
4
wwwroot/lib/bootstrap-icons/icons/alarm.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-alarm" viewBox="0 0 16 16">
|
||||
<path d="M8.5 5.5a.5.5 0 0 0-1 0v3.362l-1.429 2.38a.5.5 0 1 0 .858.515l1.5-2.5A.5.5 0 0 0 8.5 9z"/>
|
||||
<path d="M6.5 0a.5.5 0 0 0 0 1H7v1.07a7.001 7.001 0 0 0-3.273 12.474l-.602.602a.5.5 0 0 0 .707.708l.746-.746A6.97 6.97 0 0 0 8 16a6.97 6.97 0 0 0 3.422-.892l.746.746a.5.5 0 0 0 .707-.708l-.601-.602A7.001 7.001 0 0 0 9 2.07V1h.5a.5.5 0 0 0 0-1zm1.038 3.018a6 6 0 0 1 .924 0 6 6 0 1 1-.924 0M0 3.5c0 .753.333 1.429.86 1.887A8.04 8.04 0 0 1 4.387 1.86 2.5 2.5 0 0 0 0 3.5M13.5 1c-.753 0-1.429.333-1.887.86a8.04 8.04 0 0 1 3.527 3.527A2.5 2.5 0 0 0 13.5 1"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 689 B |
3
wwwroot/lib/bootstrap-icons/icons/alexa.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-alexa" viewBox="0 0 16 16">
|
||||
<path d="M7.996 0A8 8 0 0 0 0 8a8 8 0 0 0 6.93 7.93v-1.613a1.06 1.06 0 0 0-.717-1.008A5.6 5.6 0 0 1 2.4 7.865 5.58 5.58 0 0 1 8.054 2.4a5.6 5.6 0 0 1 5.535 5.81l-.002.046-.012.192-.005.061a5 5 0 0 1-.033.284l-.01.068c-.685 4.516-6.564 7.054-6.596 7.068A7.998 7.998 0 0 0 15.992 8 8 8 0 0 0 7.996.001Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 436 B |
4
wwwroot/lib/bootstrap-icons/icons/align-bottom.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-align-bottom" viewBox="0 0 16 16">
|
||||
<rect width="4" height="12" x="6" y="1" rx="1"/>
|
||||
<path d="M1.5 14a.5.5 0 0 0 0 1zm13 1a.5.5 0 0 0 0-1zm-13 0h13v-1h-13z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 264 B |
3
wwwroot/lib/bootstrap-icons/icons/align-center.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-align-center" viewBox="0 0 16 16">
|
||||
<path d="M8 1a.5.5 0 0 1 .5.5V6h-1V1.5A.5.5 0 0 1 8 1m0 14a.5.5 0 0 1-.5-.5V10h1v4.5a.5.5 0 0 1-.5.5M2 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 311 B |