Skip to content
Merve-1Public

About

This project consumes the Star Wars API (SWAPI) to showcase data about characters, planets, films, and more, built with a .NET backend and two frontend clients: Flutter (mobile) and Angular (web).

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

SWAPI Project

A full-stack application built around the Star Wars API (SWAPI), featuring a modern web application, mobile application, and .NET backend.

The project is currently under active development.

Overview

This project provides a unified Star Wars experience across web and mobile platforms. It consists of three main applications:

  • Backend API built with .NET 10
  • Web application built with Angular 22
  • Mobile application built with Flutter

The backend acts as the central layer for the applications and handles communication with SWAPI, application logic, and future backend services.

Architecture

The backend follows Clean Architecture, with the solution organized into the following layers:

  • API: Handles HTTP requests, endpoints, middleware, and communication with client applications.
  • Application: Contains application use cases, business workflows, interfaces, and application-specific logic.
  • Domain: Contains the core business entities, rules, and domain logic. This layer is independent of external frameworks and infrastructure.
  • Infrastructure: Contains implementations for external concerns such as data access, third-party API integrations, and other services.
im

Tech Stack

Backend

  • .NET 10
  • ASP.NET Core Web API
  • Clean Architecture
  • RESTful APIs
  • SWAPI integration

Web

  • Angular 22
  • TypeScript
  • HTML
  • CSS

Mobile

  • Flutter
  • Dart

Project Structure

The repository is organized into separate applications for the backend, web, and mobile platforms.

StarWars/
│
├── backend/
│   ├── src/
│   │   ├── API/
│   │   │   ├── Properties/
│   │   │   ├── API.http
│   │   │   ├── appsettings.json
│   │   │   ├── appsettings.Development.json
│   │   │   └── Program.cs
│   │   │
│   │   ├── Application/
│   │   ├── Domain/
│   │   └── Infrastructure/
│   │       └── Swapi/
│   │
│   └── test/
│       └── Backend.Tests/
│           └── UnitTest1.cs
│
├── web/     # Coming soon
│   └── ...
│
├── mobile/  # Coming soon  
│   └── ...
│
└── README.md

The exact project structure may change as development continues.

Features

The application is currently under development. Planned and implemented features may include:

  • Browse Star Wars characters
  • View detailed character information
  • Explore planets
  • Browse Star Wars films
  • Explore starships and vehicles
  • Search for Star Wars content
  • Responsive web experience
  • Native cross-platform mobile experience
  • Centralized backend API integration with SWAPI

Prerequisites

Before running the project locally, make sure you have the following installed:

Backend

  • .NET 10 SDK

Web

  • Node.js
  • npm
  • Angular CLI

Mobile

  • Flutter SDK
  • Dart SDK
  • Android Studio or Xcode, depending on your target platform

Getting Started

1. Clone the Repository

git clone https://github.com/Merve-1/StarWars
cd StarWars

Running the Backend

Navigate to the backend project:

cd backend/API

Restore dependencies:

dotnet restore

Run the application:

dotnet run

The API will start on the configured local development URL.

Running the Web Application

Coming soon.

Running the Mobile Application

Coming soon.

API Integration

The .NET backend is responsible for handling communication between the client applications and SWAPI.

This approach allows the web and mobile applications to use a consistent backend API rather than directly duplicating integration logic.

API Documentation

API documentation will be available as the backend evolves.

Future documentation may include:

  • Available endpoints
  • Request parameters
  • Response models
  • Error responses
  • Authentication requirements

Testing

Testing is planned across all parts of the application.

Backend

dotnet test

Web

ng test

Mobile

flutter test

Development Status

🚧 Work in Progress

This project is actively being developed. Features, architecture, folder structure, and documentation may change as the project evolves.

Future Improvements

Some potential improvements include:

  • Authentication and authorization
  • User favorites
  • Advanced search and filtering
  • Caching for SWAPI responses
  • Database integration
  • Improved error handling
  • Automated testing
  • CI/CD pipelines
  • Docker support
  • API versioning
  • Improved API documentation
  • Dark mode
  • Additional Star Wars data and features

Commit Explanations

This section documents the development process and the reasoning behind the main project changes.

Introduction

Introduction — Project Overview, Clean Architecture, and Project Startup

5b127cd — feat: add SWAPI client integration

Commit Explanation — Add SWAPI Client Integration

086f375 — refactor: move ISwapiClient to Application, add StarshipDto mapping

Commit Explanation — Move ISwapiClient to Application and Add StarshipDto Mapping

7cee0bd — feat: add starship endpoints and SWAPI integration

Commit Explanation — Add Starship Endpoints and SWAPI Integration

086d653 — feat: add pre-flight check pipeline using Chain of Responsibility & fix: correct SWAPI JSON property

Commit Explanation — feat: add pre-flight check pipeline using Chain of Responsibility & fix: correct SWAPI JSON property

17570d5 — feat: add currency conversion strategies using Strategy pattern & angular api setup

Commit Explanation — feat: add currency conversion strategies using Strategy pattern & angular api setup

Built with .NET 10 and SWAPI.

Web and mobile applications are planned for future development.

About

This project consumes the Star Wars API (SWAPI) to showcase data about characters, planets, films, and more, built with a .NET backend and two frontend clients: Flutter (mobile) and Angular (web).

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages