diff --git a/assets/images/current_mission.svg b/assets/images/current_mission.svg
new file mode 100644
index 0000000..12ddce8
--- /dev/null
+++ b/assets/images/current_mission.svg
@@ -0,0 +1,22 @@
+
diff --git a/assets/images/finished_mission.svg b/assets/images/finished_mission.svg
new file mode 100644
index 0000000..c960a44
--- /dev/null
+++ b/assets/images/finished_mission.svg
@@ -0,0 +1,76 @@
+
diff --git a/assets/images/location.svg b/assets/images/location.svg
new file mode 100644
index 0000000..09f09b4
--- /dev/null
+++ b/assets/images/location.svg
@@ -0,0 +1,13 @@
+
diff --git a/assets/images/map_background.png b/assets/images/map_background.png
new file mode 100644
index 0000000..e033ac9
Binary files /dev/null and b/assets/images/map_background.png differ
diff --git a/assets/images/mission.svg b/assets/images/mission.svg
new file mode 100644
index 0000000..7bf70a1
--- /dev/null
+++ b/assets/images/mission.svg
@@ -0,0 +1,22 @@
+
diff --git a/lib/common_ui/resources/my_assets.dart b/lib/common_ui/resources/my_assets.dart
index aafeaa3..9ad30c0 100644
--- a/lib/common_ui/resources/my_assets.dart
+++ b/lib/common_ui/resources/my_assets.dart
@@ -28,4 +28,9 @@ class MyAssets {
static const String correct = 'assets/images/correct.svg';
static const String wrong = 'assets/images/wrong.svg';
static const String handPoint = 'assets/images/hand_point.svg';
+ static const String mapBackground = 'assets/images/map_background.png';
+ static const String mission = 'assets/images/mission.svg';
+ static const String finishedMission = 'assets/images/finished_mission.svg';
+ static const String currentMission = 'assets/images/current_mission.svg';
+ static const String location = 'assets/images/location.svg';
}
\ No newline at end of file
diff --git a/lib/core/params/home_params.dart b/lib/core/params/home_params.dart
new file mode 100644
index 0000000..fdd3091
--- /dev/null
+++ b/lib/core/params/home_params.dart
@@ -0,0 +1,13 @@
+class HomeParams {
+ int? id;
+
+ HomeParams({this.id});
+
+ HomeParams copyWith({
+ int? id,
+ }) {
+ return HomeParams(
+ id: id ?? this.id,
+ );
+ }
+}
diff --git a/lib/features/home/data/datasource/home_datasource.dart b/lib/features/home/data/datasource/home_datasource.dart
new file mode 100644
index 0000000..17db1cf
--- /dev/null
+++ b/lib/features/home/data/datasource/home_datasource.dart
@@ -0,0 +1,28 @@
+import 'package:hadi_hoda_flutter/core/constants/my_api.dart';
+import 'package:hadi_hoda_flutter/core/network/http_request.dart';
+import 'package:hadi_hoda_flutter/core/params/home_params.dart';
+import 'package:hadi_hoda_flutter/core/response/base_response.dart';
+import 'package:hadi_hoda_flutter/features/home/data/model/home_model.dart';
+import 'package:hadi_hoda_flutter/features/home/domain/entity/home_entity.dart';
+
+abstract class IHomeDatasource {
+ Future getData({required HomeParams params});
+}
+
+class HomeDatasourceImpl implements IHomeDatasource {
+ final IHttpRequest httpRequest;
+
+ const HomeDatasourceImpl(this.httpRequest);
+
+ @override
+ Future getData({required HomeParams params}) async {
+ final response = await httpRequest.get(
+ path: MyApi.baseUrl,
+ );
+
+ return BaseResponse.getData(
+ response?['data'],
+ (json) => HomeModel.fromJson(json),
+ );
+ }
+}
diff --git a/lib/features/home/data/model/home_model.dart b/lib/features/home/data/model/home_model.dart
new file mode 100644
index 0000000..c63431f
--- /dev/null
+++ b/lib/features/home/data/model/home_model.dart
@@ -0,0 +1,13 @@
+import 'package:hadi_hoda_flutter/features/home/domain/entity/home_entity.dart';
+
+class HomeModel extends HomeEntity {
+ const HomeModel({
+ super.id,
+ });
+
+ factory HomeModel.fromJson(Map json) {
+ return HomeModel(
+ id: json['id'],
+ );
+ }
+}
diff --git a/lib/features/home/data/repository_impl/home_repository_impl.dart b/lib/features/home/data/repository_impl/home_repository_impl.dart
new file mode 100644
index 0000000..594969b
--- /dev/null
+++ b/lib/features/home/data/repository_impl/home_repository_impl.dart
@@ -0,0 +1,29 @@
+import 'package:hadi_hoda_flutter/core/params/home_params.dart';
+import 'package:flutter/foundation.dart';
+import 'package:hadi_hoda_flutter/core/error_handler/my_exception.dart';
+import 'package:hadi_hoda_flutter/core/utils/data_state.dart';
+import 'package:hadi_hoda_flutter/features/home/data/datasource/home_datasource.dart';
+import 'package:hadi_hoda_flutter/features/home/domain/entity/home_entity.dart';
+import 'package:hadi_hoda_flutter/features/home/domain/repository/home_repository.dart';
+
+class HomeRepositoryImpl implements IHomeRepository {
+ final IHomeDatasource datasource;
+
+ const HomeRepositoryImpl(this.datasource);
+
+ @override
+ Future> getData({required HomeParams params}) async {
+ try {
+ final HomeEntity response = await datasource.getData(params: params);
+ return DataState.success(response);
+ } on MyException catch (e) {
+ return DataState.error(e);
+ } catch (e) {
+ if (kDebugMode) {
+ rethrow;
+ } else {
+ return DataState.error(MyException(errorMessage: '$e'));
+ }
+ }
+ }
+}
diff --git a/lib/features/home/domain/entity/home_entity.dart b/lib/features/home/domain/entity/home_entity.dart
new file mode 100644
index 0000000..582723c
--- /dev/null
+++ b/lib/features/home/domain/entity/home_entity.dart
@@ -0,0 +1,14 @@
+import 'package:equatable/equatable.dart';
+
+class HomeEntity extends Equatable {
+ final int? id;
+
+ const HomeEntity({
+ this.id,
+ });
+
+ @override
+ List