Go to file
Ricardo Carneiro ae8f308025
All checks were successful
Deploy to OCI (Ampere64) / deploy (push) Successful in 1m15s
feat: cases e deploy automatico
2026-02-16 21:08:00 -03:00
.gitea/workflows feat: cases e deploy automatico 2026-02-16 21:08:00 -03:00
Content feat: cases e deploy automatico 2026-02-16 21:08:00 -03:00
Controllers feat: mudança de foco. Novo site de manutenção. 2026-02-16 20:28:27 -03:00
Models feat: mudança de foco. Novo site de manutenção. 2026-02-16 20:28:27 -03:00
Properties feat: Primeira Versão traduzida 2025-12-21 21:57:39 -03:00
Resources feat: mudança de foco. Novo site de manutenção. 2026-02-16 20:28:27 -03:00
Services feat: mudança de foco. Novo site de manutenção. 2026-02-16 20:28:27 -03:00
Views feat: cases e deploy automatico 2026-02-16 21:08:00 -03:00
wwwroot feat: cases e deploy automatico 2026-02-16 21:08:00 -03:00
.dockerignore feat: Primeira Versão traduzida 2025-12-21 21:57:39 -03:00
.gitignore Initial commit 2025-12-22 00:51:48 +00:00
appsettings.Development.json feat: Primeira Versão traduzida 2025-12-21 21:57:39 -03:00
appsettings.json feat: Primeira Versão traduzida 2025-12-21 21:57:39 -03:00
CarneiroTech.csproj feat: mudança de foco. Novo site de manutenção. 2026-02-16 20:28:27 -03:00
CarneiroTech.sln feat: Primeira Versão traduzida 2025-12-21 21:57:39 -03:00
DEPLOY_README.md feat: Primeira Versão traduzida 2025-12-21 21:57:39 -03:00
deploy-to-oci.sh feat: Primeira Versão traduzida 2025-12-21 21:57:39 -03:00
docker-compose.yml feat: Primeira Versão traduzida 2025-12-21 21:57:39 -03:00
Dockerfile feat: Primeira Versão traduzida 2025-12-21 21:57:39 -03:00
IMPLEMENTATION_SUMMARY.md feat: Primeira Versão traduzida 2025-12-21 21:57:39 -03:00
MUDANCAS_TEMA_VERMELHO.md feat: Primeira Versão traduzida 2025-12-21 21:57:39 -03:00
Program.cs feat: Primeira Versão traduzida 2025-12-21 21:57:39 -03:00
QUICK_START.md feat: Primeira Versão traduzida 2025-12-21 21:57:39 -03:00
README.md feat: Primeira Versão traduzida 2025-12-21 21:57:39 -03:00

Carneiro Tech - Professional Consulting Website

Professional website for Carneiro Tech - Solution Design & Technical Consulting, built with ASP.NET MVC Core and Bootstrap.

Features

  • Modern Design: Agency Bootstrap template adapted for consulting
  • Markdown-based Cases: Easy portfolio management with .md files
  • SEO Optimized: Meta tags, Open Graph, Twitter Cards, JSON-LD structured data
  • Responsive: Mobile-first design using Bootstrap 5
  • Tag Filtering: Filter cases by technology/category
  • Sitemap: Automatic XML sitemap generation
  • Docker Ready: Containerized for easy deployment

Tech Stack

Backend

  • ASP.NET MVC Core 8
  • C# 12
  • Markdig (Markdown parsing)
  • YamlDotNet (YAML front matter)

Frontend

  • Bootstrap 5 (Agency template)
  • Font Awesome icons
  • Google Fonts (Montserrat, Roboto Slab)

Deployment

  • Docker & Docker Compose
  • Ready for OCI (Oracle Cloud Infrastructure)

Project Structure

CarneiroTech/
├── Controllers/
│   ├── HomeController.cs       # Homepage, sitemap, contact
│   └── CasesController.cs      # Cases list and details
├── Models/
│   ├── CaseModel.cs
│   ├── CaseMetadata.cs
│   ├── ContactFormModel.cs
│   └── SitemapItem.cs
├── Services/
│   ├── ICaseService.cs
│   ├── CaseService.cs
│   ├── IMarkdownService.cs
│   └── MarkdownService.cs
├── Views/
│   ├── Home/
│   │   └── Index.cshtml        # Homepage
│   ├── Cases/
│   │   ├── Index.cshtml        # Cases list
│   │   └── Details.cshtml      # Individual case
│   └── Shared/
│       └── _Layout.cshtml      # Main layout with SEO
├── Content/
│   └── Cases/                  # Markdown case files
│       ├── sap-integration-healthcare.md
│       ├── legacy-modernization.md
│       └── mvp-definition.md
├── wwwroot/
│   ├── css/                    # Bootstrap template CSS
│   ├── js/                     # Bootstrap template JS
│   ├── img/                    # Images and logo
│   └── robots.txt
├── Dockerfile
├── docker-compose.yml
└── README.md

Getting Started

Prerequisites

Installation

  1. Clone the repository

    git clone <repository-url>
    cd CarneiroTech
    
  2. Restore dependencies

    dotnet restore
    
  3. Run the application

    dotnet run
    
  4. Open in browser Navigate to: http://localhost:5000 or https://localhost:5001

Running with Docker

  1. Build and run with Docker Compose

    docker-compose up -d
    
  2. Access the application Navigate to: http://localhost:8080

  3. Stop the container

    docker-compose down
    

Adding New Cases

1. Create a Markdown File

Create a new file in Content/Cases/ folder:

touch Content/Cases/my-new-case.md

2. Add Front Matter + Content

---
title: "My Amazing Project"
slug: "my-amazing-project"
summary: "Short summary for cards and SEO"
client: "Client Name"
industry: "Industry"
timeline: "3 months"
role: "Your Role"
image: "/img/cases/project.jpg"
tags:
  - Tag1
  - Tag2
  - Tag3
featured: true
order: 1
date: 2024-01-15
seo_title: "SEO optimized title (max 60 chars)"
seo_description: "SEO description (max 160 chars)"
seo_keywords: "keyword1, keyword2, keyword3"
---

## Overview

Your case content here in Markdown format...

### Subsection

More content...

- Bullet points
- Work great

\`\`\`csharp
// Code blocks work too
public void Example() {
    Console.WriteLine("Hello!");
}
\`\`\`

3. Refresh the Application

The case service uses in-memory caching (60 minutes). Either:

  • Wait for cache expiration
  • Restart the application
  • Implement cache invalidation

4. Access Your Case

Navigate to: /cases/my-amazing-project

Markdown Features

Supported Markdown features:

  • Headers (H1-H6)
  • Bold, italic, strikethrough
  • Lists (ordered and unordered)
  • Links and images
  • Code blocks with syntax highlighting
  • Tables
  • Blockquotes
  • Horizontal rules

SEO Features

Meta Tags

  • Dynamic title, description, keywords per page
  • Canonical URLs
  • Author meta tag

Open Graph

  • Full OG tags for social sharing
  • Dynamic OG images per case
  • Locale support (pt_BR)

Twitter Cards

  • Summary cards with large images
  • Dynamic content per page

Structured Data

  • JSON-LD Organization schema
  • Professional service markup
  • Enhanced search results

Sitemap

  • Auto-generated XML sitemap
  • Accessible at /sitemap.xml
  • Includes homepage, cases index, and all individual cases

Robots.txt

  • Located at /robots.txt
  • Allows all crawlers
  • Points to sitemap

Configuration

Caching

Cases are cached in memory for 60 minutes. To adjust:

Edit Services/CaseService.cs:

private const int CACHE_MINUTES = 60; // Change this value

Site URL

Update the canonical URL and sitemap URLs in:

  • Views/Shared/_Layout.cshtml (line 12)
  • Controllers/HomeController.cs (Sitemap method)

Replace https://carneirotech.com with your domain.

Deployment

Docker Deployment

  1. Build the image

    docker build -t carneirotech:latest .
    
  2. Run the container

    docker run -d -p 8080:80 --name carneirotech carneirotech:latest
    

Docker Compose Deployment

docker-compose up -d

OCI (Oracle Cloud) Deployment

  1. Push image to OCI Container Registry
  2. Create Container Instance
  3. Configure port mapping (80/443)
  4. Set environment variables
  5. Mount volume for Content folder (optional)

Customization

Replace /wwwroot/img/logo.svg with your logo.

Update navbar logo reference in _Layout.cshtml if needed.

Colors

The template uses Bootstrap 5 with custom colors. To customize:

Edit /wwwroot/css/styles.css:

  • Primary color: #ffc800 (yellow/gold)
  • Dark color: #212529
  • Fonts: Montserrat, Roboto Slab

Content

Edit the following views to customize content:

  • Views/Home/Index.cshtml - Homepage content
  • Views/Shared/_Layout.cshtml - Navigation, footer
  • Controllers/HomeController.cs - Contact form logic

License

This project is private and proprietary.

Support

For issues or questions, contact: ricardo@carneirotech.com


Built with ❤️ for Carneiro Tech