Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions .github/workflows/BuildAndTests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ name: MR build and tests

on:
pull_request:
branches: [ "master" ]
branches: [ "main" ]

permissions:
contents: read
Expand All @@ -25,11 +25,6 @@ jobs:
with:
dotnet-version: 8.0.x

- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: '18.x'

- name: Restore dependencies
run: dotnet restore

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/Release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ permissions: read-all

on:
push:
branches: [ "master" ]
branches: [ "main" ]

jobs:
build:
Expand Down
17 changes: 17 additions & 0 deletions FPSSoftware.Server/FPSSoftware.Server.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="BetterStack.Logs.Serilog" Version="1.1.0" />
<PackageReference Include="Serilog.AspNetCore" Version="9.0.0" />
<PackageReference Include="Serilog.Extensions.Logging" Version="9.0.1" />
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
<PackageReference Include="Serilog.Sinks.File" Version="6.0.0" />
<PackageReference Include="Serilog.Sinks.Http" Version="9.1.1" />
</ItemGroup>
</Project>
26 changes: 26 additions & 0 deletions FPSSoftware.Server/Pages/Error.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
@page
@model ErrorModel
@{
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 the <strong>Development</strong> environment displays 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>
27 changes: 27 additions & 0 deletions FPSSoftware.Server/Pages/Error.cshtml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
using System.Diagnostics;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace FPSSoftware.Server.Pages;

[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
[IgnoreAntiforgeryToken]
public class ErrorModel : PageModel
{
public string? RequestId { get; set; }

public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);

private readonly ILogger<ErrorModel> _logger;

public ErrorModel(ILogger<ErrorModel> logger)
{
_logger = logger;
}

public void OnGet()
{
RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier;
}
}

89 changes: 89 additions & 0 deletions FPSSoftware.Server/Pages/Index.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}

<section id="home" class="hero">
<div class="hero-container">
<h1>Professional Web Development Solutions</h1>
<p>We create powerful, scalable, and user-friendly websites that drive your business forward in the digital landscape.</p>
<a href="#contact" class="cta-button">Start Your Project</a>
</div>
</section>

<section id="services" class="services">
<div class="container">
<h2 class="section-title">Our Services</h2>
<p class="section-subtitle">Comprehensive web development solutions tailored to your business needs</p>
<div class="services-grid">
<div class="service-card">
<div class="service-icon">🌐</div>
<h3>Web Development</h3>
<p>Custom websites and web applications built with modern technologies and best practices for optimal performance and user experience.</p>
</div>
<div class="service-card">
<div class="service-icon">📱</div>
<h3>Responsive Design</h3>
<p>Mobile-first responsive designs that look perfect and function flawlessly across all devices and screen sizes.</p>
</div>
<div class="service-card">
<div class="service-icon">⚡</div>
<h3>Performance Optimization</h3>
<p>Speed optimization and performance tuning to ensure your website loads fast and ranks well in search engines.</p>
</div>
<div class="service-card">
<div class="service-icon">🛠️</div>
<h3>Maintenance & Support</h3>
<p>Ongoing website maintenance, updates, and technical support to keep your site secure and running smoothly.</p>
</div>
<div class="service-card">
<div class="service-icon">🔍</div>
<h3>SEO Integration</h3>
<p>Search engine optimization built into every website to improve visibility and drive organic traffic to your business.</p>
</div>
<div class="service-card">
<div class="service-icon">🔒</div>
<h3>Security & Hosting</h3>
<p>Secure hosting solutions with SSL certificates, regular backups, and comprehensive security measures.</p>
</div>
</div>
</div>
</section>

<section id="about" class="about">
<div class="container">
<div class="about-content">
<div class="about-text">
<h2>Why Choose FPS Software?</h2>
<p>With years of experience in web development, we understand what it takes to create successful digital solutions. Our team combines technical expertise with creative vision to deliver websites that not only look great but also perform exceptionally.</p>
<p>We work closely with our clients to understand their unique requirements and business goals, ensuring every project is tailored to deliver maximum value and impact.</p>
<div class="stats">
<div class="stat">
<span class="stat-number">150+</span>
<span class="stat-label">Projects Completed</span>
</div>
<div class="stat">
<span class="stat-number">98%</span>
<span class="stat-label">Client Satisfaction</span>
</div>
<div class="stat">
<span class="stat-number">5+</span>
<span class="stat-label">Years Experience</span>
</div>
</div>
</div>
<div class="about-visual">
<span>💻</span>
</div>
</div>
</div>
</section>

<section id="contact" class="contact">
<div class="container">
<h2>Ready to Start Your Project?</h2>
<p>Let's discuss how we can help bring your vision to life with professional web development solutions.</p>
<a href="mailto:info@fpssoftware.com" class="contact-button">Get In Touch</a>
</div>
</section>
19 changes: 19 additions & 0 deletions FPSSoftware.Server/Pages/Index.cshtml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace FPSSoftware.Server.Pages;

public class IndexModel : PageModel
{
private readonly ILogger<IndexModel> _logger;

public IndexModel(ILogger<IndexModel> logger)
{
_logger = logger;
}

public void OnGet()
{

}
}
8 changes: 8 additions & 0 deletions FPSSoftware.Server/Pages/Privacy.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
@page
@model PrivacyModel
@{
ViewData["Title"] = "Privacy Policy";
}
<h1>@ViewData["Title"]</h1>

<p>Use this page to detail your site's privacy policy.</p>
19 changes: 19 additions & 0 deletions FPSSoftware.Server/Pages/Privacy.cshtml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace FPSSoftware.Server.Pages;

public class PrivacyModel : PageModel
{
private readonly ILogger<PrivacyModel> _logger;

public PrivacyModel(ILogger<PrivacyModel> logger)
{
_logger = logger;
}

public void OnGet()
{
}
}

52 changes: 52 additions & 0 deletions FPSSoftware.Server/Pages/Shared/_Layout.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>FPS Software - Professional Web Development Solutions</title>
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
<link rel="stylesheet" href="~/FPSSoftware.Server.styles.css" asp-append-version="true" />
</head>
<body>
<header class="header">
<div class="nav-container">
<a class="navbar-brand" asp-area="" asp-page="/Index">
<div class="logo">
<div class="logo-icon">
<div class="logo-squares">
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
</div>
</div>
FPS SOFTWARE
</div>
</a>
<nav>
<ul class="nav-links">
<li><a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a></li>
<li><a href="#services">Services</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
</div>
</header>

<div class="container">
@RenderBody()
</div>

<footer class="footer">
<div class="container">
<p>&copy; 2025 FPS Software. All rights reserved. | Professional Web Development Solutions - <a asp-area="" asp-page="/Privacy">Privacy</a></p>
</div>
</footer>

<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>
1 change: 1 addition & 0 deletions FPSSoftware.Server/Pages/Shared/_Layout.cshtml.css
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

Original file line number Diff line number Diff line change
@@ -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 changes: 3 additions & 0 deletions FPSSoftware.Server/Pages/_ViewImports.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@using FPSSoftware.Server
@namespace FPSSoftware.Server.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
3 changes: 3 additions & 0 deletions FPSSoftware.Server/Pages/_ViewStart.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@{
Layout = "_Layout";
}
45 changes: 45 additions & 0 deletions FPSSoftware.Server/Program.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
using Serilog;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddRazorPages();
builder.Services.AddOutputCache();

builder.Host.UseSerilog((context, configuration) =>
configuration.ReadFrom.Configuration(context.Configuration));

try
{
var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/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.UseOutputCache();

app.UseSerilogRequestLogging();

app.UseRouting();

app.UseAuthorization();

app.MapRazorPages();

app.Run();
}
catch (Exception ex)
{
Log.Fatal(ex, "A aplicação falhou ao iniciar.");
}
finally
{
Log.CloseAndFlush(); // Close and send all pendent logs to betterstack
}
38 changes: 38 additions & 0 deletions FPSSoftware.Server/Properties/launchSettings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:58112",
"sslPort": 44300
}
},
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://localhost:5261",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "https://localhost:7048;http://localhost:5261",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
Loading
Loading