Przejdź do treści stopki
KORZYSTANIE Z IRONPDF

Jak używać ChatGPT z IronPDF Dla dewelopera C#

1.0 Czym jest ChatGPT?

ChatGPT to chatbot oparty na sztucznej inteligencji (AI), stworzony przez OpenAI. Termin "ChatGPT" łączy w sobie słowa "Chat", które nawiązuje do funkcji chatbota w systemie, oraz "GPT", co oznacza Generative Pre-trained Transformer i jest rodzajem dużego modelu językowego (LLM). Podstawowe modele GPT firmy OpenAI, a mianowicie GPT-3.5 i GPT-4, stanowią podstawę dla ChatGPT, który został udoskonalony (metoda uczenia transferowego) pod kątem zastosowań konwersacyjnych wykorzystujących połączenie technik uczenia nadzorowanego i uczenia przez wzmocnienie, co obejmuje uczenie maszynowe, przetwarzanie języka naturalnego oraz sztuczną inteligencję. ChatGPT potrafi rozumieć i generować tekst przypominający ludzki.

W tym artykule pokażemy, jak stworzyć aplikację MAUI, która korzysta z API OpenAI ChatGPT do odbierania wiadomości, oferowania wyników na podstawie zapytań użytkowników, a następnie eksportowania tych wyników jako pliku PDF do późniejszego wykorzystania za pomocą IronPDF.

1.1 Skonfiguruj konto OpenAI

Aby zarejestrować konto OpenAI, wykonaj następujące czynności:

  • Odwiedź oficjalną stronę OpenAI.
  • Na stronie głównej witryny znajdź i kliknij przycisk "Zarejestruj się". Spowoduje to przejście do formularza tworzenia konta.
  • Wypełnij niezbędne pola formularza rejestracyjnego.
  • Kliknij link weryfikacyjny wysłany na zarejestrowany adres e-mail, aby potwierdzić swój adres e-mail.
  • Jeśli rejestracja przebiegła pomyślnie, powinieneś uzyskać dostęp do swojego konta OpenAI, wprowadzając dane logowania podane podczas rejestracji.

1.2 Uzyskanie klucza API OpenAI

  • Aby uzyskać dostęp do OpenAI, przejdź na stronę internetową i zaloguj się przy użyciu danych swojego konta.

    Jak korzystać z ChatGPT z IronPDF dla programistów C#, rysunek 1: Wejdź na stronę OpenAI Wejdź na stronę OpenAI

  • Przejdź do sekcji API platformy OpenAI. Następnie przejdź do Ustawienia konta > Wyświetl klucz API, gdzie możesz go znaleźć.
  • Teraz możesz utworzyć nowy tajny klucz API.

    Jak korzystać z ChatGPT z IronPDF dla programistów C#, rysunek 2: Tworzenie kluczy API Utwórz klucze API

2.0 Pierwsze kroki z aplikacją .NET MAUI

Do tworzenia aplikacji .NET MAUI napisanej w języku C# konieczne jest zainstalowanie programu Visual Studio 2022 oraz .NET Framework 7. Następnie wykonaj kolejne kroki, aby utworzyć i napisać aplikację .NET MAUI.

2.1 Otwórz program Visual Studio

Otwórz program Visual Studio, a następnie wybierz z menu opcję "Utwórz nowy projekt" i wpisz ".NET MAUI" w polu wyszukiwania.

2.2 Wybierz aplikację .NET MAUI

W programie Visual Studio wybierz szablon aplikacji .NET MAUI z listy wyników wyszukiwania. Po wybraniu go nadaj mu odpowiednią nazwę i wybierz lokalizację projektu. Po zakończeniu konfiguracji kliknij "Dalej".

Jak korzystać z ChatGPT z IronPDF dla programistów C#, rysunek 3: Utwórz nową aplikację .NET MAUI w Visual Studio Utwórz nową aplikację .NET MAUI w programie Visual Studio

2.3 Wybierz framework

Wybierz odpowiedni framework; Niemniej jednak zaleca się na przykład wybór najnowszej wersji .NET Framework. Po wybraniu wersji frameworka naciśnij przycisk Utwórz w programie Visual Studio.

Jak korzystać z ChatGPT z IronPDF dla programistów C#, rysunek 4: Konfiguracja nowego projektu Skonfiguruj nowy projekt

W programie Visual Studio 2022 zostanie utworzony nowy projekt .NET MAUI. .NET MAUI domyślnie tworzy prostą aplikację z licznikiem.

Jak korzystać z ChatGPT z IronPDF dla programistów C#, rysunek 5: Wybór platformy .NET Framework Wybór platformy .NET Framework

Modyfikując aplikację .NET MAUI, można zintegrować ChatGPT OpenAI i eksportować wyniki do plików PDF przy użyciu biblioteki IronPDF C# PDF na tej wersji platformy.

2.4 Zainstaluj pakiet OpenAI

Wpisz następujące polecenie w konsoli menedżera pakietów NuGet.

Install-Package OpenAI

To polecenie zainstaluje pakiet OpenAI, który zapewnia dostęp do API niezbędnego do interakcji z ChatGPT przy użyciu języka C#.

2.5 Zainstaluj IronPDF

Wpisz następujące polecenie, aby zainstalować pakiet IronPDF:

Install-Package IronPdf

Powyższe polecenie instaluje IronPDF w projekcie MAUI. IronPDF służy do renderowania treści HTML do plików PDF i jest kluczowym elementem eksportowania danych z aplikacji do dokumentu PDF.

3.0 Czym jest IronPDF?

Dzięki IronPDF, solidnej platformie SDK do przetwarzania plików PDF, programiści mogą szybko tworzyć, odczytywać i edytować dokumenty PDF. Biblioteka IronPDF wykorzystuje silnik Chrome do konwersji HTML na PDF. Wśród wielu komponentów internetowych obsługiwanych przez bibliotekę znajdują się MAUI, Xamarin, Blazor, Unity, aplikacje HoloLens, Windows Forms, HTML, ASPX, Razor HTML, .NET Core, ASP.NET oraz WPF. Programowanie w środowisku Microsoft .NET i .NET Core może być wykorzystywane zarówno w tradycyjnych aplikacjach dla systemu Windows, jak i w aplikacjach internetowych ASP.NET.

Korzystając z HTML5, JavaScript, CSS i obrazów, IronPDF umożliwia tworzenie atrakcyjnych plików PDF z nagłówkiem i stopką. Biblioteka API zawiera solidny konwerter HTML na PDF, który obsługuje pliki PDF, a także samodzielne narzędzie i silnik do konwersji PDF, niezależne od jakichkolwiek zewnętrznych źródeł.

Aby dowiedzieć się więcej o IronPDF, zapoznaj się ze stronami samouczka dotyczącego konwersji HTML do PDF.

4.0 Eksportuj wynik API ChatGPT za pomocą IronPDF

Dodaj poniższy kod do pliku "MauiProgram.cs":

builder.Services.AddChatGpt(options =>
{
    options.UseOpenAI("API key here"); // Replace with your actual OpenAI API key
    options.DefaultModel = OpenAIChatGptModels.Gpt35Turbo; // Set the default model
    options.MessageLimit = 10; // Limit number of messages per session
    options.MessageExpiration = TimeSpan.FromMinutes(5); // Set message expiration time
});
builder.Services.AddChatGpt(options =>
{
    options.UseOpenAI("API key here"); // Replace with your actual OpenAI API key
    options.DefaultModel = OpenAIChatGptModels.Gpt35Turbo; // Set the default model
    options.MessageLimit = 10; // Limit number of messages per session
    options.MessageExpiration = TimeSpan.FromMinutes(5); // Set message expiration time
});
builder.Services.AddChatGpt(Sub(options)
	options.UseOpenAI("API key here") ' Replace with your actual OpenAI API key
	options.DefaultModel = OpenAIChatGptModels.Gpt35Turbo ' Set the default model
	options.MessageLimit = 10 ' Limit number of messages per session
	options.MessageExpiration = TimeSpan.FromMinutes(5) ' Set message expiration time
End Sub)
$vbLabelText   $csharpLabel

Ten fragment kodu rejestruje usługę dla interfejsu API ChatGPT, z której mogą następnie korzystać inne klasy lub strony w aplikacji.

Dodaj poniższy kod na stronie głównej aplikacji w metodzie ładowania strony. Pomaga to uzyskać instancję usługi ChatGPT i zapisać ją w lokalnym obiekcie.

_chatGptClient = Handler.MauiContext.Services.GetService<IChatGptClient>();
_chatGptClient = Handler.MauiContext.Services.GetService<IChatGptClient>();
_chatGptClient = Handler.MauiContext.Services.GetService(Of IChatGptClient)()
$vbLabelText   $csharpLabel

Ten kod pobiera instancję klienta ChatGPT od dostawcy usług, umożliwiając stronie głównej interakcję z API ChatGPT.

Następnie utwórz interfejs użytkownika podobny do tego przedstawionego w poniższym kodzie XAML:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="ChatGPT_MauiApp.MainPage"
             BackgroundColor="black">
    <StackLayout>
        <StackLayout Orientation="Horizontal" Spacing="25" Padding="30,0">
            <ScrollView WidthRequest="700" HeightRequest="200" x:Name="scrollView">
                <TableView Intent="Data" WidthRequest="700" x:Name="Table_View" BackgroundColor="DarkSlateGrey">
                    <TableRoot>

                    </TableRoot>
                </TableView>
            </ScrollView>
        </StackLayout>
        <StackLayout Padding="30,0">
            <Editor
                x:Name="Userquest"
                Text=""
                HorizontalOptions="Start"
                FontSize="12"
                Placeholder=" Enter your Queries"
                HeightRequest="25" WidthRequest="700" />
        </StackLayout>
        <StackLayout Padding="30,10,10,0">
            <FlexLayout>
                <Button
                    x:Name="Sendquery"
                    Text="Send Query"
                    SemanticProperties.Hint="Click to send query to BOT"
                    Clicked="SendqueryClicked"
                    HorizontalOptions="Center" 
                    BackgroundColor="Green"
                    TextColor="WhiteSmoke" />
                <Button
                    x:Name="Export"
                    Text="Export"
                    SemanticProperties.Hint="Click to export data"
                    Clicked="OnExportClicked"
                    HorizontalOptions="Center" 
                    BackgroundColor="DodgerBlue"
                    TextColor="WhiteSmoke" />
            </FlexLayout>
        </StackLayout>
    </StackLayout>
</ContentPage>
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="ChatGPT_MauiApp.MainPage"
             BackgroundColor="black">
    <StackLayout>
        <StackLayout Orientation="Horizontal" Spacing="25" Padding="30,0">
            <ScrollView WidthRequest="700" HeightRequest="200" x:Name="scrollView">
                <TableView Intent="Data" WidthRequest="700" x:Name="Table_View" BackgroundColor="DarkSlateGrey">
                    <TableRoot>

                    </TableRoot>
                </TableView>
            </ScrollView>
        </StackLayout>
        <StackLayout Padding="30,0">
            <Editor
                x:Name="Userquest"
                Text=""
                HorizontalOptions="Start"
                FontSize="12"
                Placeholder=" Enter your Queries"
                HeightRequest="25" WidthRequest="700" />
        </StackLayout>
        <StackLayout Padding="30,10,10,0">
            <FlexLayout>
                <Button
                    x:Name="Sendquery"
                    Text="Send Query"
                    SemanticProperties.Hint="Click to send query to BOT"
                    Clicked="SendqueryClicked"
                    HorizontalOptions="Center" 
                    BackgroundColor="Green"
                    TextColor="WhiteSmoke" />
                <Button
                    x:Name="Export"
                    Text="Export"
                    SemanticProperties.Hint="Click to export data"
                    Clicked="OnExportClicked"
                    HorizontalOptions="Center" 
                    BackgroundColor="DodgerBlue"
                    TextColor="WhiteSmoke" />
            </FlexLayout>
        </StackLayout>
    </StackLayout>
</ContentPage>
XML

Powyższy fragment ContentPage określa układ interfejsu użytkownika aplikacji. Użytkownicy mogą wprowadzać zapytania, komunikować się z interfejsem API ChatGPT za pomocą przycisku "Wyślij zapytanie" oraz eksportować wyniki do pliku PDF za pomocą przycisku "Eksportuj". Wyniki są wyświetlane w TableView.

Poniżej znajduje się logika kodu odpowiedzialna za obsługę kliknięć przycisków i eksport danych:

private void OnExportClicked(object sender, EventArgs e)
{
    StringBuilder db = new();

    foreach (var tableSection in Table_View.Root.ToList())
    {
        foreach (var cell in tableSection)
        {
            if (cell is TextCell textCell)
            {
                db.Append("<p style='color:red;text-align:left;'>" + textCell.Text + "</p>");
                db.Append("<p style='color:black;text-align:justify;'>" + textCell.Detail + "</p>");
            }
        }
    }

    // Create and save the PDF
    var renderer = new IronPdf.ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(db.ToString());
    pdf.SaveAs("F:\\Download\\Demo.pdf");
}

private async void SendqueryClicked(object sender, EventArgs e)
{
    if (!string.IsNullOrEmpty(Userquest.Text))
    {
        var query = Userquest.Text;
        Userquest.Text = "";
        var tableSection = AddQueryToTable(query);
        ChatGptResponse response = await _chatGptClient.AskAsync(_sessionGuid, query);
        var resp = response.GetMessage();
        AddResponseToTable(tableSection, resp);
    }
}

private TableSection AddQueryToTable(string query)
{
    var textCell = new TextCell
    {
        Text = query,
        TextColor = Colors.Red,
        DetailColor = Colors.WhiteSmoke,
        Detail = ""
    };

    var tableSection = new TableSection { textCell };
    Table_View.Root.Add(tableSection);
    return tableSection;
}

private void AddResponseToTable(TableSection section, string response)
{
    if (section.FirstOrDefault() is TextCell textCell)
    {
        textCell.Detail = response;
    }
}
private void OnExportClicked(object sender, EventArgs e)
{
    StringBuilder db = new();

    foreach (var tableSection in Table_View.Root.ToList())
    {
        foreach (var cell in tableSection)
        {
            if (cell is TextCell textCell)
            {
                db.Append("<p style='color:red;text-align:left;'>" + textCell.Text + "</p>");
                db.Append("<p style='color:black;text-align:justify;'>" + textCell.Detail + "</p>");
            }
        }
    }

    // Create and save the PDF
    var renderer = new IronPdf.ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(db.ToString());
    pdf.SaveAs("F:\\Download\\Demo.pdf");
}

private async void SendqueryClicked(object sender, EventArgs e)
{
    if (!string.IsNullOrEmpty(Userquest.Text))
    {
        var query = Userquest.Text;
        Userquest.Text = "";
        var tableSection = AddQueryToTable(query);
        ChatGptResponse response = await _chatGptClient.AskAsync(_sessionGuid, query);
        var resp = response.GetMessage();
        AddResponseToTable(tableSection, resp);
    }
}

private TableSection AddQueryToTable(string query)
{
    var textCell = new TextCell
    {
        Text = query,
        TextColor = Colors.Red,
        DetailColor = Colors.WhiteSmoke,
        Detail = ""
    };

    var tableSection = new TableSection { textCell };
    Table_View.Root.Add(tableSection);
    return tableSection;
}

private void AddResponseToTable(TableSection section, string response)
{
    if (section.FirstOrDefault() is TextCell textCell)
    {
        textCell.Detail = response;
    }
}
Private Sub OnExportClicked(ByVal sender As Object, ByVal e As EventArgs)
	Dim db As New StringBuilder()

	For Each tableSection In Table_View.Root.ToList()
		For Each cell In tableSection
			Dim tempVar As Boolean = TypeOf cell Is TextCell
			Dim textCell As TextCell = If(tempVar, CType(cell, TextCell), Nothing)
			If tempVar Then
				db.Append("<p style='color:red;text-align:left;'>" & textCell.Text & "</p>")
				db.Append("<p style='color:black;text-align:justify;'>" & textCell.Detail & "</p>")
			End If
		Next cell
	Next tableSection

	' Create and save the PDF
	Dim renderer = New IronPdf.ChromePdfRenderer()
	Dim pdf = renderer.RenderHtmlAsPdf(db.ToString())
	pdf.SaveAs("F:\Download\Demo.pdf")
End Sub

Private Async Sub SendqueryClicked(ByVal sender As Object, ByVal e As EventArgs)
	If Not String.IsNullOrEmpty(Userquest.Text) Then
		Dim query = Userquest.Text
		Userquest.Text = ""
		Dim tableSection = AddQueryToTable(query)
		Dim response As ChatGptResponse = Await _chatGptClient.AskAsync(_sessionGuid, query)
		Dim resp = response.GetMessage()
		AddResponseToTable(tableSection, resp)
	End If
End Sub

Private Function AddQueryToTable(ByVal query As String) As TableSection
	Dim textCell As New TextCell With {
		.Text = query,
		.TextColor = Colors.Red,
		.DetailColor = Colors.WhiteSmoke,
		.Detail = ""
	}

	Dim tableSection As New TableSection From {textCell}
	Table_View.Root.Add(tableSection)
	Return tableSection
End Function

Private Sub AddResponseToTable(ByVal section As TableSection, ByVal response As String)
	Dim tempVar As Boolean = TypeOf section.FirstOrDefault() Is TextCell
	Dim textCell As TextCell = If(tempVar, CType(section.FirstOrDefault(), TextCell), Nothing)
	If tempVar Then
		textCell.Detail = response
	End If
End Sub
$vbLabelText   $csharpLabel

Wyjaśnienie:

  • Metoda OnExportClicked tworzy plik PDF na podstawie treści HTML zebranej z interfejsu użytkownika przy użyciu IronPDF. Wygenerowany plik PDF jest zapisywany w określonej lokalizacji.

  • Metoda SendqueryClicked pobiera zapytanie użytkownika, wysyła je do API OpenAI za pomocą _chatGptClient i wyświetla odpowiedź. Dodaje również zapytanie i odpowiedź do TableView.

  • Metody pomocnicze AddQueryToTable i AddResponseToTable pomagają w aktualizowaniu komponentów interfejsu użytkownika na podstawie zapytań użytkowników i odpowiedzi chatbota.

Po dodaniu powyższego kodu spróbuj uruchomić swoje rozwiązanie. Wpisz zapytanie i pobierz wynik, klikając przycisk "Wyślij zapytanie". Wyśle zapytanie użytkownika do interfejsu API ChatGPT, pobierze wynik i wyświetli komunikat na ekranie.

Jak korzystać z ChatGPT z IronPDF dla programistów C#, rysunek 7: Dodaj zapytanie tekstowe do aplikacji Dodaj zapytanie tekstowe do aplikacji

Kliknij przycisk "Eksportuj", aby wyeksportować wyniki do pliku PDF.

Jak korzystać z ChatGPT z IronPDF dla programistów C#, rysunek 8: Wyeksportowany plik PDF Eksportowany plik PDF

Udało nam się stworzyć chatbota przy użyciu ChatGPT i wyeksportować tę rozmowę za pomocą IronPDF do aplikacji MAUI. Korzystając z powyższej koncepcji, można dołączyć obrazy, pliki audio i wideo z API ChatGPT, aby uzyskać dokładniejsze wyniki.

5.0 Podsumowanie

Celem tego artykułu jest stworzenie aplikacji MAUI, która wykorzystuje API OpenAI ChatGPT do odbierania wiadomości, oferowania wyników na podstawie zapytań użytkowników oraz eksportowania tych wyników jako pliku PDF. Aby poprawić jakość sugestii, zachęcamy do eksperymentowania poprzez zmianę pytań. Aby sprawdzić, czy różne modele dają lepsze wyniki, można również eksperymentować z modyfikacją wartości wyliczeniowej ChatGptModels w metodzie AddChatGpt w pliku "MauiProgram.cs".

API ChatGPT to potężny program oparty na sztucznej inteligencji, który pozwala nam dostarczać wyniki na podstawie zapytania użytkownika. Koszt korzystania z API ChatGPT jest obliczany na podstawie liczby wysłanych żądań. IronPDF służy do wysyłania żądań API i eksportowania wyników do plików PDF do wykorzystania w przyszłości, co pozwala uniknąć wielokrotnego wysyłania tych samych żądań API.

Dzięki IronPDF możemy tworzyć pliki PDF za pomocą zaledwie kilku wierszy kodu. Ta aplikacja jest odpowiednia dla początkujących i wymaga jedynie podstawowej wiedzy do korzystania z niej. Żaden inny pakiet nie jest w żaden sposób zależny od IronPDF. Na przykład jest to biblioteka dostępna w jednym pakiecie. Programiści IronPDF mogą wybierać spośród różnych licencji dostosowanych do ich wymagań. Dostępna jest również bezpłatna wersja próbna. Pełne informacje na temat cen i licencji IronPDF można znaleźć na stronie licencyjnej IronPDF.

Często Zadawane Pytania

Jak zintegrować ChatGPT z aplikacją .NET MAUI?

Aby zintegrować ChatGPT z aplikacją .NET MAUI, należy najpierw założyć konto OpenAI i uzyskać klucz API. Następnie należy zainstalować pakiet OpenAI w projekcie za pośrednictwem NuGet i skonfigurować API w aplikacji w celu obsługi zapytań użytkowników.

Jak przekonwertować wyniki API do formatu PDF w aplikacji MAUI?

W aplikacji MAUI można konwertować wyniki API do formatu PDF za pomocą IronPDF. Po pobraniu odpowiedzi z API ChatGPT należy użyć metod IronPDF do renderowania treści HTML jako pliku PDF.

Jakie kroki trzeba wykonać, żeby skonfigurować aplikację MAUI opartą na ChatGPT?

Aby skonfigurować aplikację MAUI opartą na ChatGPT, należy utworzyć nowy projekt .NET MAUI w Visual Studio, zainstalować pakiety OpenAI i IronPDF, skonfigurować ustawienia API w kodzie oraz napisać logikę przetwarzania zapytań i generowania plików PDF.

Czy IronPDF obsługuje treści HTML, JavaScript i CSS podczas tworzenia plików PDF?

Tak, IronPDF obsługuje treści HTML, JavaScript i CSS podczas tworzenia plików PDF. Wykorzystuje silnik renderujący Chrome do konwersji treści HTML na dokument PDF.

Czy można dostosować ustawienia API ChatGPT w mojej aplikacji?

Tak, możesz dostosować ustawienia API ChatGPT w swojej aplikacji, zmieniając parametry, takie jak typy modeli, limity wiadomości i czasy wygaśnięcia w pliku MauiProgram.cs.

Jakie są zalety korzystania z IronPDF w aplikacji MAUI?

IronPDF zapewnia solidny zestaw SDK do tworzenia, odczytu i edycji plików PDF. Umożliwia konwersję treści HTML do formatu PDF, obsługuje wyodrębnianie tekstu i oferuje różne funkcje usprawniające obsługę plików PDF w aplikacjach MAUI.

Czy dostępna jest bezpłatna wersja próbna IronPDF?

Tak, IronPDF oferuje bezpłatną wersję próbną, która pozwala programistom zapoznać się z jego funkcjami i możliwościami przed podjęciem decyzji o zakupie planu licencyjnego.

Jak zainstalować pakiety niezbędne do projektu ChatGPT PDF w MAUI?

Użyj konsoli menedżera pakietów NuGet w Visual Studio, aby zainstalować pakiety OpenAI i IronPDF. Uruchom polecenia Install-Package OpenAI i Install-Package IronPDF, aby dodać je do swojego projektu.

Jaka jest rola IronPDF w obsłudze dokumentów PDF?

IronPDF służy do tworzenia, edycji i konwersji dokumentów PDF. Pozwala programistom konwertować treści internetowe na pliki PDF, wyszukiwać tekst oraz wyodrębniać obrazy, dzięki czemu idealnie nadaje się do aplikacji wymagających obsługi plików PDF.

Czy IronPDF jest w pełni kompatybilny z .NET 10?

Tak, IronPDF jest w pełni kompatybilny z .NET 10. Obsługuje wszystkie główne wersje .NET — w tym .NET 10, 9, 8, 7, 6, Core i .NET Framework — i został zaprojektowany tak, aby działać od razu w projektach .NET 10 bez konieczności specjalnej konfiguracji.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie