diff --git a/backend/dbLocation.sqlite b/backend/dbLocation.sqlite new file mode 100644 index 0000000..5404dca Binary files /dev/null and b/backend/dbLocation.sqlite differ diff --git a/backend/public/uploads/360_F_109442512_BFX_5_Df_Ma9q_PHDX_Jr7_Md99tgk9d_IGG_7_PH_cbe7af9e2c.jpg b/backend/public/uploads/360_F_109442512_BFX_5_Df_Ma9q_PHDX_Jr7_Md99tgk9d_IGG_7_PH_cbe7af9e2c.jpg new file mode 100644 index 0000000..49e1235 Binary files /dev/null and b/backend/public/uploads/360_F_109442512_BFX_5_Df_Ma9q_PHDX_Jr7_Md99tgk9d_IGG_7_PH_cbe7af9e2c.jpg differ diff --git a/backend/public/uploads/Aurora_Space_logo_black_horizontal_45222947dc.jpg b/backend/public/uploads/Aurora_Space_logo_black_horizontal_45222947dc.jpg new file mode 100644 index 0000000..cc2e85b Binary files /dev/null and b/backend/public/uploads/Aurora_Space_logo_black_horizontal_45222947dc.jpg differ diff --git a/backend/public/uploads/HYPSCI_pyramid_4f2ffe25f6.png b/backend/public/uploads/HYPSCI_pyramid_4f2ffe25f6.png new file mode 100644 index 0000000..64db370 Binary files /dev/null and b/backend/public/uploads/HYPSCI_pyramid_4f2ffe25f6.png differ diff --git a/backend/public/uploads/HYPSO_1_1_1_653ff0e37a.png b/backend/public/uploads/HYPSO_1_1_1_653ff0e37a.png new file mode 100644 index 0000000..d96d2c9 Binary files /dev/null and b/backend/public/uploads/HYPSO_1_1_1_653ff0e37a.png differ diff --git a/backend/public/uploads/HYPSO_2_95bb311e31.jpeg b/backend/public/uploads/HYPSO_2_95bb311e31.jpeg new file mode 100644 index 0000000..74f0553 Binary files /dev/null and b/backend/public/uploads/HYPSO_2_95bb311e31.jpeg differ diff --git a/backend/public/uploads/Hi_Res_17_0850db092c.jpg b/backend/public/uploads/Hi_Res_17_0850db092c.jpg new file mode 100644 index 0000000..d87eac3 Binary files /dev/null and b/backend/public/uploads/Hi_Res_17_0850db092c.jpg differ diff --git a/backend/public/uploads/INTERREG_AURORA_CMYK_Color_320c375a7c.png b/backend/public/uploads/INTERREG_AURORA_CMYK_Color_320c375a7c.png new file mode 100644 index 0000000..0b07f1a Binary files /dev/null and b/backend/public/uploads/INTERREG_AURORA_CMYK_Color_320c375a7c.png differ diff --git a/backend/public/uploads/SS_september_2023_eec52ea4b5.jpg b/backend/public/uploads/SS_september_2023_eec52ea4b5.jpg new file mode 100644 index 0000000..1b5aa63 Binary files /dev/null and b/backend/public/uploads/SS_september_2023_eec52ea4b5.jpg differ diff --git a/backend/public/uploads/Untitled_5e5ce53e6b.jpeg b/backend/public/uploads/Untitled_5e5ce53e6b.jpeg new file mode 100644 index 0000000..733865b Binary files /dev/null and b/backend/public/uploads/Untitled_5e5ce53e6b.jpeg differ diff --git a/backend/public/uploads/calsphere_1_6a80d5cc2c.jpg b/backend/public/uploads/calsphere_1_6a80d5cc2c.jpg new file mode 100644 index 0000000..21687df Binary files /dev/null and b/backend/public/uploads/calsphere_1_6a80d5cc2c.jpg differ diff --git a/backend/public/uploads/carlsen_70f9668f5b.jpeg b/backend/public/uploads/carlsen_70f9668f5b.jpeg new file mode 100644 index 0000000..5898970 Binary files /dev/null and b/backend/public/uploads/carlsen_70f9668f5b.jpeg differ diff --git a/backend/public/uploads/frohavet_2024_04_26_1049_Z_hypso_combined_d9c2fd07d2.png b/backend/public/uploads/frohavet_2024_04_26_1049_Z_hypso_combined_d9c2fd07d2.png new file mode 100644 index 0000000..f2565a6 Binary files /dev/null and b/backend/public/uploads/frohavet_2024_04_26_1049_Z_hypso_combined_d9c2fd07d2.png differ diff --git a/backend/public/uploads/gloria_2a422c347e.png b/backend/public/uploads/gloria_2a422c347e.png new file mode 100644 index 0000000..20cf7b3 Binary files /dev/null and b/backend/public/uploads/gloria_2a422c347e.png differ diff --git a/backend/public/uploads/gloria_upscaled_77104919c6.png b/backend/public/uploads/gloria_upscaled_77104919c6.png new file mode 100644 index 0000000..3dc9e3e Binary files /dev/null and b/backend/public/uploads/gloria_upscaled_77104919c6.png differ diff --git a/backend/public/uploads/glowing_spaceship_orbits_planet_starry_galaxy_generated_by_ai_188544_9655_e4f857207a.avif b/backend/public/uploads/glowing_spaceship_orbits_planet_starry_galaxy_generated_by_ai_188544_9655_e4f857207a.avif new file mode 100644 index 0000000..05c94a6 Binary files /dev/null and b/backend/public/uploads/glowing_spaceship_orbits_planet_starry_galaxy_generated_by_ai_188544_9655_e4f857207a.avif differ diff --git a/backend/public/uploads/hypso_2_everything_ea8f1db551.png b/backend/public/uploads/hypso_2_everything_ea8f1db551.png new file mode 100644 index 0000000..31f2505 Binary files /dev/null and b/backend/public/uploads/hypso_2_everything_ea8f1db551.png differ diff --git a/backend/public/uploads/hypso_2_linkedin_f249708c58.jpg b/backend/public/uploads/hypso_2_linkedin_f249708c58.jpg new file mode 100644 index 0000000..d14b81c Binary files /dev/null and b/backend/public/uploads/hypso_2_linkedin_f249708c58.jpg differ diff --git a/backend/public/uploads/images_3961400a50.jpeg b/backend/public/uploads/images_3961400a50.jpeg new file mode 100644 index 0000000..0453b0f Binary files /dev/null and b/backend/public/uploads/images_3961400a50.jpeg differ diff --git a/backend/public/uploads/istockphoto_1346944001_612x612_2b67709b62.jpg b/backend/public/uploads/istockphoto_1346944001_612x612_2b67709b62.jpg new file mode 100644 index 0000000..f55a74f Binary files /dev/null and b/backend/public/uploads/istockphoto_1346944001_612x612_2b67709b62.jpg differ diff --git a/backend/public/uploads/istockphoto_1411195926_612x612_57d34f5ad6.jpg b/backend/public/uploads/istockphoto_1411195926_612x612_57d34f5ad6.jpg new file mode 100644 index 0000000..d73d0a5 Binary files /dev/null and b/backend/public/uploads/istockphoto_1411195926_612x612_57d34f5ad6.jpg differ diff --git a/backend/public/uploads/istockphoto_598826374_612x612_2c2a483bfb.jpg b/backend/public/uploads/istockphoto_598826374_612x612_2c2a483bfb.jpg new file mode 100644 index 0000000..32aad46 Binary files /dev/null and b/backend/public/uploads/istockphoto_598826374_612x612_2c2a483bfb.jpg differ diff --git a/backend/public/uploads/lakeanoya_2024_07_13_1047_Z_2_scaled_acebd71bbc.png b/backend/public/uploads/lakeanoya_2024_07_13_1047_Z_2_scaled_acebd71bbc.png new file mode 100644 index 0000000..b946227 Binary files /dev/null and b/backend/public/uploads/lakeanoya_2024_07_13_1047_Z_2_scaled_acebd71bbc.png differ diff --git a/backend/public/uploads/large_HYPSO_1_1_1_653ff0e37a.png b/backend/public/uploads/large_HYPSO_1_1_1_653ff0e37a.png new file mode 100644 index 0000000..8b63c8a Binary files /dev/null and b/backend/public/uploads/large_HYPSO_1_1_1_653ff0e37a.png differ diff --git a/backend/public/uploads/large_HYPSO_2_95bb311e31.jpeg b/backend/public/uploads/large_HYPSO_2_95bb311e31.jpeg new file mode 100644 index 0000000..cb83d7c Binary files /dev/null and b/backend/public/uploads/large_HYPSO_2_95bb311e31.jpeg differ diff --git a/backend/public/uploads/large_Hi_Res_17_0850db092c.jpg b/backend/public/uploads/large_Hi_Res_17_0850db092c.jpg new file mode 100644 index 0000000..6235412 Binary files /dev/null and b/backend/public/uploads/large_Hi_Res_17_0850db092c.jpg differ diff --git a/backend/public/uploads/large_INTERREG_AURORA_CMYK_Color_320c375a7c.png b/backend/public/uploads/large_INTERREG_AURORA_CMYK_Color_320c375a7c.png new file mode 100644 index 0000000..fbd034c Binary files /dev/null and b/backend/public/uploads/large_INTERREG_AURORA_CMYK_Color_320c375a7c.png differ diff --git a/backend/public/uploads/large_SS_september_2023_eec52ea4b5.jpg b/backend/public/uploads/large_SS_september_2023_eec52ea4b5.jpg new file mode 100644 index 0000000..114b609 Binary files /dev/null and b/backend/public/uploads/large_SS_september_2023_eec52ea4b5.jpg differ diff --git a/backend/public/uploads/large_frohavet_2024_04_26_1049_Z_hypso_combined_d9c2fd07d2.png b/backend/public/uploads/large_frohavet_2024_04_26_1049_Z_hypso_combined_d9c2fd07d2.png new file mode 100644 index 0000000..3a9e917 Binary files /dev/null and b/backend/public/uploads/large_frohavet_2024_04_26_1049_Z_hypso_combined_d9c2fd07d2.png differ diff --git a/backend/public/uploads/large_gloria_upscaled_77104919c6.png b/backend/public/uploads/large_gloria_upscaled_77104919c6.png new file mode 100644 index 0000000..14c1b1a Binary files /dev/null and b/backend/public/uploads/large_gloria_upscaled_77104919c6.png differ diff --git a/backend/public/uploads/large_hypso_2_everything_ea8f1db551.png b/backend/public/uploads/large_hypso_2_everything_ea8f1db551.png new file mode 100644 index 0000000..85299f7 Binary files /dev/null and b/backend/public/uploads/large_hypso_2_everything_ea8f1db551.png differ diff --git a/backend/public/uploads/large_hypso_2_linkedin_f249708c58.jpg b/backend/public/uploads/large_hypso_2_linkedin_f249708c58.jpg new file mode 100644 index 0000000..a68c841 Binary files /dev/null and b/backend/public/uploads/large_hypso_2_linkedin_f249708c58.jpg differ diff --git a/backend/public/uploads/large_lakeanoya_2024_07_13_1047_Z_2_scaled_acebd71bbc.png b/backend/public/uploads/large_lakeanoya_2024_07_13_1047_Z_2_scaled_acebd71bbc.png new file mode 100644 index 0000000..5152254 Binary files /dev/null and b/backend/public/uploads/large_lakeanoya_2024_07_13_1047_Z_2_scaled_acebd71bbc.png differ diff --git a/backend/public/uploads/large_selfiesat_df406db0bd.jpg b/backend/public/uploads/large_selfiesat_df406db0bd.jpg new file mode 100644 index 0000000..3637ae4 Binary files /dev/null and b/backend/public/uploads/large_selfiesat_df406db0bd.jpg differ diff --git a/backend/public/uploads/main_image_star_forming_region_carina_nircam_final_12801_9621e7be99.webp b/backend/public/uploads/main_image_star_forming_region_carina_nircam_final_12801_9621e7be99.webp new file mode 100644 index 0000000..352c4d2 Binary files /dev/null and b/backend/public/uploads/main_image_star_forming_region_carina_nircam_final_12801_9621e7be99.webp differ diff --git a/backend/public/uploads/medium_Aurora_Space_logo_black_horizontal_45222947dc.jpg b/backend/public/uploads/medium_Aurora_Space_logo_black_horizontal_45222947dc.jpg new file mode 100644 index 0000000..2efb1a3 Binary files /dev/null and b/backend/public/uploads/medium_Aurora_Space_logo_black_horizontal_45222947dc.jpg differ diff --git a/backend/public/uploads/medium_HYPSCI_pyramid_4f2ffe25f6.png b/backend/public/uploads/medium_HYPSCI_pyramid_4f2ffe25f6.png new file mode 100644 index 0000000..4606e02 Binary files /dev/null and b/backend/public/uploads/medium_HYPSCI_pyramid_4f2ffe25f6.png differ diff --git a/backend/public/uploads/medium_HYPSO_1_1_1_653ff0e37a.png b/backend/public/uploads/medium_HYPSO_1_1_1_653ff0e37a.png new file mode 100644 index 0000000..f1de5ff Binary files /dev/null and b/backend/public/uploads/medium_HYPSO_1_1_1_653ff0e37a.png differ diff --git a/backend/public/uploads/medium_HYPSO_2_95bb311e31.jpeg b/backend/public/uploads/medium_HYPSO_2_95bb311e31.jpeg new file mode 100644 index 0000000..88e0d1b Binary files /dev/null and b/backend/public/uploads/medium_HYPSO_2_95bb311e31.jpeg differ diff --git a/backend/public/uploads/medium_Hi_Res_17_0850db092c.jpg b/backend/public/uploads/medium_Hi_Res_17_0850db092c.jpg new file mode 100644 index 0000000..f687dee Binary files /dev/null and b/backend/public/uploads/medium_Hi_Res_17_0850db092c.jpg differ diff --git a/backend/public/uploads/medium_INTERREG_AURORA_CMYK_Color_320c375a7c.png b/backend/public/uploads/medium_INTERREG_AURORA_CMYK_Color_320c375a7c.png new file mode 100644 index 0000000..93220da Binary files /dev/null and b/backend/public/uploads/medium_INTERREG_AURORA_CMYK_Color_320c375a7c.png differ diff --git a/backend/public/uploads/medium_SS_september_2023_eec52ea4b5.jpg b/backend/public/uploads/medium_SS_september_2023_eec52ea4b5.jpg new file mode 100644 index 0000000..4b7e74e Binary files /dev/null and b/backend/public/uploads/medium_SS_september_2023_eec52ea4b5.jpg differ diff --git a/backend/public/uploads/medium_frohavet_2024_04_26_1049_Z_hypso_combined_d9c2fd07d2.png b/backend/public/uploads/medium_frohavet_2024_04_26_1049_Z_hypso_combined_d9c2fd07d2.png new file mode 100644 index 0000000..ba8e371 Binary files /dev/null and b/backend/public/uploads/medium_frohavet_2024_04_26_1049_Z_hypso_combined_d9c2fd07d2.png differ diff --git a/backend/public/uploads/medium_gloria_upscaled_77104919c6.png b/backend/public/uploads/medium_gloria_upscaled_77104919c6.png new file mode 100644 index 0000000..1ce8d0f Binary files /dev/null and b/backend/public/uploads/medium_gloria_upscaled_77104919c6.png differ diff --git a/backend/public/uploads/medium_hypso_2_everything_ea8f1db551.png b/backend/public/uploads/medium_hypso_2_everything_ea8f1db551.png new file mode 100644 index 0000000..0c131a2 Binary files /dev/null and b/backend/public/uploads/medium_hypso_2_everything_ea8f1db551.png differ diff --git a/backend/public/uploads/medium_hypso_2_linkedin_f249708c58.jpg b/backend/public/uploads/medium_hypso_2_linkedin_f249708c58.jpg new file mode 100644 index 0000000..c6dc76e Binary files /dev/null and b/backend/public/uploads/medium_hypso_2_linkedin_f249708c58.jpg differ diff --git a/backend/public/uploads/medium_lakeanoya_2024_07_13_1047_Z_2_scaled_acebd71bbc.png b/backend/public/uploads/medium_lakeanoya_2024_07_13_1047_Z_2_scaled_acebd71bbc.png new file mode 100644 index 0000000..ccffed1 Binary files /dev/null and b/backend/public/uploads/medium_lakeanoya_2024_07_13_1047_Z_2_scaled_acebd71bbc.png differ diff --git a/backend/public/uploads/medium_main_image_star_forming_region_carina_nircam_final_12801_9621e7be99.webp b/backend/public/uploads/medium_main_image_star_forming_region_carina_nircam_final_12801_9621e7be99.webp new file mode 100644 index 0000000..60bbc05 Binary files /dev/null and b/backend/public/uploads/medium_main_image_star_forming_region_carina_nircam_final_12801_9621e7be99.webp differ diff --git a/backend/public/uploads/medium_orbit_patches_b80812a7c9.png b/backend/public/uploads/medium_orbit_patches_b80812a7c9.png new file mode 100644 index 0000000..d87e4bb Binary files /dev/null and b/backend/public/uploads/medium_orbit_patches_b80812a7c9.png differ diff --git a/backend/public/uploads/medium_project_design_in_project_management_107e06e2fa.png b/backend/public/uploads/medium_project_design_in_project_management_107e06e2fa.png new file mode 100644 index 0000000..b4f1831 Binary files /dev/null and b/backend/public/uploads/medium_project_design_in_project_management_107e06e2fa.png differ diff --git a/backend/public/uploads/medium_selfiesat_df406db0bd.jpg b/backend/public/uploads/medium_selfiesat_df406db0bd.jpg new file mode 100644 index 0000000..d93f31f Binary files /dev/null and b/backend/public/uploads/medium_selfiesat_df406db0bd.jpg differ diff --git a/backend/public/uploads/orbit_patches_b80812a7c9.png b/backend/public/uploads/orbit_patches_b80812a7c9.png new file mode 100644 index 0000000..143560f Binary files /dev/null and b/backend/public/uploads/orbit_patches_b80812a7c9.png differ diff --git a/backend/public/uploads/project_design_in_project_management_107e06e2fa.png b/backend/public/uploads/project_design_in_project_management_107e06e2fa.png new file mode 100644 index 0000000..3bf288d Binary files /dev/null and b/backend/public/uploads/project_design_in_project_management_107e06e2fa.png differ diff --git a/backend/public/uploads/selfiesat_df406db0bd.jpg b/backend/public/uploads/selfiesat_df406db0bd.jpg new file mode 100644 index 0000000..dbc006c Binary files /dev/null and b/backend/public/uploads/selfiesat_df406db0bd.jpg differ diff --git a/backend/public/uploads/small_360_F_109442512_BFX_5_Df_Ma9q_PHDX_Jr7_Md99tgk9d_IGG_7_PH_cbe7af9e2c.jpg b/backend/public/uploads/small_360_F_109442512_BFX_5_Df_Ma9q_PHDX_Jr7_Md99tgk9d_IGG_7_PH_cbe7af9e2c.jpg new file mode 100644 index 0000000..f7cb83b Binary files /dev/null and b/backend/public/uploads/small_360_F_109442512_BFX_5_Df_Ma9q_PHDX_Jr7_Md99tgk9d_IGG_7_PH_cbe7af9e2c.jpg differ diff --git a/backend/public/uploads/small_Aurora_Space_logo_black_horizontal_45222947dc.jpg b/backend/public/uploads/small_Aurora_Space_logo_black_horizontal_45222947dc.jpg new file mode 100644 index 0000000..05b3c65 Binary files /dev/null and b/backend/public/uploads/small_Aurora_Space_logo_black_horizontal_45222947dc.jpg differ diff --git a/backend/public/uploads/small_HYPSCI_pyramid_4f2ffe25f6.png b/backend/public/uploads/small_HYPSCI_pyramid_4f2ffe25f6.png new file mode 100644 index 0000000..cdd5634 Binary files /dev/null and b/backend/public/uploads/small_HYPSCI_pyramid_4f2ffe25f6.png differ diff --git a/backend/public/uploads/small_HYPSO_1_1_1_653ff0e37a.png b/backend/public/uploads/small_HYPSO_1_1_1_653ff0e37a.png new file mode 100644 index 0000000..3616c0a Binary files /dev/null and b/backend/public/uploads/small_HYPSO_1_1_1_653ff0e37a.png differ diff --git a/backend/public/uploads/small_HYPSO_2_95bb311e31.jpeg b/backend/public/uploads/small_HYPSO_2_95bb311e31.jpeg new file mode 100644 index 0000000..23c02e6 Binary files /dev/null and b/backend/public/uploads/small_HYPSO_2_95bb311e31.jpeg differ diff --git a/backend/public/uploads/small_Hi_Res_17_0850db092c.jpg b/backend/public/uploads/small_Hi_Res_17_0850db092c.jpg new file mode 100644 index 0000000..4c6973d Binary files /dev/null and b/backend/public/uploads/small_Hi_Res_17_0850db092c.jpg differ diff --git a/backend/public/uploads/small_INTERREG_AURORA_CMYK_Color_320c375a7c.png b/backend/public/uploads/small_INTERREG_AURORA_CMYK_Color_320c375a7c.png new file mode 100644 index 0000000..d357e9a Binary files /dev/null and b/backend/public/uploads/small_INTERREG_AURORA_CMYK_Color_320c375a7c.png differ diff --git a/backend/public/uploads/small_SS_september_2023_eec52ea4b5.jpg b/backend/public/uploads/small_SS_september_2023_eec52ea4b5.jpg new file mode 100644 index 0000000..62eeae4 Binary files /dev/null and b/backend/public/uploads/small_SS_september_2023_eec52ea4b5.jpg differ diff --git a/backend/public/uploads/small_frohavet_2024_04_26_1049_Z_hypso_combined_d9c2fd07d2.png b/backend/public/uploads/small_frohavet_2024_04_26_1049_Z_hypso_combined_d9c2fd07d2.png new file mode 100644 index 0000000..053d348 Binary files /dev/null and b/backend/public/uploads/small_frohavet_2024_04_26_1049_Z_hypso_combined_d9c2fd07d2.png differ diff --git a/backend/public/uploads/small_gloria_2a422c347e.png b/backend/public/uploads/small_gloria_2a422c347e.png new file mode 100644 index 0000000..9f970a7 Binary files /dev/null and b/backend/public/uploads/small_gloria_2a422c347e.png differ diff --git a/backend/public/uploads/small_gloria_upscaled_77104919c6.png b/backend/public/uploads/small_gloria_upscaled_77104919c6.png new file mode 100644 index 0000000..634f26c Binary files /dev/null and b/backend/public/uploads/small_gloria_upscaled_77104919c6.png differ diff --git a/backend/public/uploads/small_hypso_2_everything_ea8f1db551.png b/backend/public/uploads/small_hypso_2_everything_ea8f1db551.png new file mode 100644 index 0000000..23616a4 Binary files /dev/null and b/backend/public/uploads/small_hypso_2_everything_ea8f1db551.png differ diff --git a/backend/public/uploads/small_hypso_2_linkedin_f249708c58.jpg b/backend/public/uploads/small_hypso_2_linkedin_f249708c58.jpg new file mode 100644 index 0000000..8bf1254 Binary files /dev/null and b/backend/public/uploads/small_hypso_2_linkedin_f249708c58.jpg differ diff --git a/backend/public/uploads/small_istockphoto_1346944001_612x612_2b67709b62.jpg b/backend/public/uploads/small_istockphoto_1346944001_612x612_2b67709b62.jpg new file mode 100644 index 0000000..aeadceb Binary files /dev/null and b/backend/public/uploads/small_istockphoto_1346944001_612x612_2b67709b62.jpg differ diff --git a/backend/public/uploads/small_istockphoto_1411195926_612x612_57d34f5ad6.jpg b/backend/public/uploads/small_istockphoto_1411195926_612x612_57d34f5ad6.jpg new file mode 100644 index 0000000..e12907d Binary files /dev/null and b/backend/public/uploads/small_istockphoto_1411195926_612x612_57d34f5ad6.jpg differ diff --git a/backend/public/uploads/small_istockphoto_598826374_612x612_2c2a483bfb.jpg b/backend/public/uploads/small_istockphoto_598826374_612x612_2c2a483bfb.jpg new file mode 100644 index 0000000..2a71e30 Binary files /dev/null and b/backend/public/uploads/small_istockphoto_598826374_612x612_2c2a483bfb.jpg differ diff --git a/backend/public/uploads/small_lakeanoya_2024_07_13_1047_Z_2_scaled_acebd71bbc.png b/backend/public/uploads/small_lakeanoya_2024_07_13_1047_Z_2_scaled_acebd71bbc.png new file mode 100644 index 0000000..c93c2e1 Binary files /dev/null and b/backend/public/uploads/small_lakeanoya_2024_07_13_1047_Z_2_scaled_acebd71bbc.png differ diff --git a/backend/public/uploads/small_main_image_star_forming_region_carina_nircam_final_12801_9621e7be99.webp b/backend/public/uploads/small_main_image_star_forming_region_carina_nircam_final_12801_9621e7be99.webp new file mode 100644 index 0000000..ed5637c Binary files /dev/null and b/backend/public/uploads/small_main_image_star_forming_region_carina_nircam_final_12801_9621e7be99.webp differ diff --git a/backend/public/uploads/small_orbit_patches_b80812a7c9.png b/backend/public/uploads/small_orbit_patches_b80812a7c9.png new file mode 100644 index 0000000..f4e957c Binary files /dev/null and b/backend/public/uploads/small_orbit_patches_b80812a7c9.png differ diff --git a/backend/public/uploads/small_project_design_in_project_management_107e06e2fa.png b/backend/public/uploads/small_project_design_in_project_management_107e06e2fa.png new file mode 100644 index 0000000..17af0b5 Binary files /dev/null and b/backend/public/uploads/small_project_design_in_project_management_107e06e2fa.png differ diff --git a/backend/public/uploads/small_selfiesat_df406db0bd.jpg b/backend/public/uploads/small_selfiesat_df406db0bd.jpg new file mode 100644 index 0000000..0a771e3 Binary files /dev/null and b/backend/public/uploads/small_selfiesat_df406db0bd.jpg differ diff --git a/backend/public/uploads/thumbnail_360_F_109442512_BFX_5_Df_Ma9q_PHDX_Jr7_Md99tgk9d_IGG_7_PH_cbe7af9e2c.jpg b/backend/public/uploads/thumbnail_360_F_109442512_BFX_5_Df_Ma9q_PHDX_Jr7_Md99tgk9d_IGG_7_PH_cbe7af9e2c.jpg new file mode 100644 index 0000000..3cb17cc Binary files /dev/null and b/backend/public/uploads/thumbnail_360_F_109442512_BFX_5_Df_Ma9q_PHDX_Jr7_Md99tgk9d_IGG_7_PH_cbe7af9e2c.jpg differ diff --git a/backend/public/uploads/thumbnail_Aurora_Space_logo_black_horizontal_45222947dc.jpg b/backend/public/uploads/thumbnail_Aurora_Space_logo_black_horizontal_45222947dc.jpg new file mode 100644 index 0000000..10f57ef Binary files /dev/null and b/backend/public/uploads/thumbnail_Aurora_Space_logo_black_horizontal_45222947dc.jpg differ diff --git a/backend/public/uploads/thumbnail_HYPSCI_pyramid_4f2ffe25f6.png b/backend/public/uploads/thumbnail_HYPSCI_pyramid_4f2ffe25f6.png new file mode 100644 index 0000000..3b86b49 Binary files /dev/null and b/backend/public/uploads/thumbnail_HYPSCI_pyramid_4f2ffe25f6.png differ diff --git a/backend/public/uploads/thumbnail_HYPSO_1_1_1_653ff0e37a.png b/backend/public/uploads/thumbnail_HYPSO_1_1_1_653ff0e37a.png new file mode 100644 index 0000000..801c632 Binary files /dev/null and b/backend/public/uploads/thumbnail_HYPSO_1_1_1_653ff0e37a.png differ diff --git a/backend/public/uploads/thumbnail_HYPSO_2_95bb311e31.jpeg b/backend/public/uploads/thumbnail_HYPSO_2_95bb311e31.jpeg new file mode 100644 index 0000000..53cfa5d Binary files /dev/null and b/backend/public/uploads/thumbnail_HYPSO_2_95bb311e31.jpeg differ diff --git a/backend/public/uploads/thumbnail_Hi_Res_17_0850db092c.jpg b/backend/public/uploads/thumbnail_Hi_Res_17_0850db092c.jpg new file mode 100644 index 0000000..9c721e2 Binary files /dev/null and b/backend/public/uploads/thumbnail_Hi_Res_17_0850db092c.jpg differ diff --git a/backend/public/uploads/thumbnail_INTERREG_AURORA_CMYK_Color_320c375a7c.png b/backend/public/uploads/thumbnail_INTERREG_AURORA_CMYK_Color_320c375a7c.png new file mode 100644 index 0000000..c381c12 Binary files /dev/null and b/backend/public/uploads/thumbnail_INTERREG_AURORA_CMYK_Color_320c375a7c.png differ diff --git a/backend/public/uploads/thumbnail_SS_september_2023_eec52ea4b5.jpg b/backend/public/uploads/thumbnail_SS_september_2023_eec52ea4b5.jpg new file mode 100644 index 0000000..eba2a7a Binary files /dev/null and b/backend/public/uploads/thumbnail_SS_september_2023_eec52ea4b5.jpg differ diff --git a/backend/public/uploads/thumbnail_Untitled_5e5ce53e6b.jpeg b/backend/public/uploads/thumbnail_Untitled_5e5ce53e6b.jpeg new file mode 100644 index 0000000..9265dd1 Binary files /dev/null and b/backend/public/uploads/thumbnail_Untitled_5e5ce53e6b.jpeg differ diff --git a/backend/public/uploads/thumbnail_calsphere_1_6a80d5cc2c.jpg b/backend/public/uploads/thumbnail_calsphere_1_6a80d5cc2c.jpg new file mode 100644 index 0000000..46fddd4 Binary files /dev/null and b/backend/public/uploads/thumbnail_calsphere_1_6a80d5cc2c.jpg differ diff --git a/backend/public/uploads/thumbnail_carlsen_70f9668f5b.jpeg b/backend/public/uploads/thumbnail_carlsen_70f9668f5b.jpeg new file mode 100644 index 0000000..387fc92 Binary files /dev/null and b/backend/public/uploads/thumbnail_carlsen_70f9668f5b.jpeg differ diff --git a/backend/public/uploads/thumbnail_frohavet_2024_04_26_1049_Z_hypso_combined_d9c2fd07d2.png b/backend/public/uploads/thumbnail_frohavet_2024_04_26_1049_Z_hypso_combined_d9c2fd07d2.png new file mode 100644 index 0000000..c14d0ed Binary files /dev/null and b/backend/public/uploads/thumbnail_frohavet_2024_04_26_1049_Z_hypso_combined_d9c2fd07d2.png differ diff --git a/backend/public/uploads/thumbnail_gloria_2a422c347e.png b/backend/public/uploads/thumbnail_gloria_2a422c347e.png new file mode 100644 index 0000000..a41a569 Binary files /dev/null and b/backend/public/uploads/thumbnail_gloria_2a422c347e.png differ diff --git a/backend/public/uploads/thumbnail_gloria_upscaled_77104919c6.png b/backend/public/uploads/thumbnail_gloria_upscaled_77104919c6.png new file mode 100644 index 0000000..98eb561 Binary files /dev/null and b/backend/public/uploads/thumbnail_gloria_upscaled_77104919c6.png differ diff --git a/backend/public/uploads/thumbnail_hypso_2_everything_ea8f1db551.png b/backend/public/uploads/thumbnail_hypso_2_everything_ea8f1db551.png new file mode 100644 index 0000000..8990817 Binary files /dev/null and b/backend/public/uploads/thumbnail_hypso_2_everything_ea8f1db551.png differ diff --git a/backend/public/uploads/thumbnail_hypso_2_linkedin_f249708c58.jpg b/backend/public/uploads/thumbnail_hypso_2_linkedin_f249708c58.jpg new file mode 100644 index 0000000..b405457 Binary files /dev/null and b/backend/public/uploads/thumbnail_hypso_2_linkedin_f249708c58.jpg differ diff --git a/backend/public/uploads/thumbnail_images_3961400a50.jpeg b/backend/public/uploads/thumbnail_images_3961400a50.jpeg new file mode 100644 index 0000000..a5d4bb6 Binary files /dev/null and b/backend/public/uploads/thumbnail_images_3961400a50.jpeg differ diff --git a/backend/public/uploads/thumbnail_istockphoto_1346944001_612x612_2b67709b62.jpg b/backend/public/uploads/thumbnail_istockphoto_1346944001_612x612_2b67709b62.jpg new file mode 100644 index 0000000..daf5a0c Binary files /dev/null and b/backend/public/uploads/thumbnail_istockphoto_1346944001_612x612_2b67709b62.jpg differ diff --git a/backend/public/uploads/thumbnail_istockphoto_1411195926_612x612_57d34f5ad6.jpg b/backend/public/uploads/thumbnail_istockphoto_1411195926_612x612_57d34f5ad6.jpg new file mode 100644 index 0000000..6c90135 Binary files /dev/null and b/backend/public/uploads/thumbnail_istockphoto_1411195926_612x612_57d34f5ad6.jpg differ diff --git a/backend/public/uploads/thumbnail_istockphoto_598826374_612x612_2c2a483bfb.jpg b/backend/public/uploads/thumbnail_istockphoto_598826374_612x612_2c2a483bfb.jpg new file mode 100644 index 0000000..34e077f Binary files /dev/null and b/backend/public/uploads/thumbnail_istockphoto_598826374_612x612_2c2a483bfb.jpg differ diff --git a/backend/public/uploads/thumbnail_lakeanoya_2024_07_13_1047_Z_2_scaled_acebd71bbc.png b/backend/public/uploads/thumbnail_lakeanoya_2024_07_13_1047_Z_2_scaled_acebd71bbc.png new file mode 100644 index 0000000..f261d20 Binary files /dev/null and b/backend/public/uploads/thumbnail_lakeanoya_2024_07_13_1047_Z_2_scaled_acebd71bbc.png differ diff --git a/backend/public/uploads/thumbnail_main_image_star_forming_region_carina_nircam_final_12801_9621e7be99.webp b/backend/public/uploads/thumbnail_main_image_star_forming_region_carina_nircam_final_12801_9621e7be99.webp new file mode 100644 index 0000000..14fd89c Binary files /dev/null and b/backend/public/uploads/thumbnail_main_image_star_forming_region_carina_nircam_final_12801_9621e7be99.webp differ diff --git a/backend/public/uploads/thumbnail_orbit_patches_b80812a7c9.png b/backend/public/uploads/thumbnail_orbit_patches_b80812a7c9.png new file mode 100644 index 0000000..2e70aa8 Binary files /dev/null and b/backend/public/uploads/thumbnail_orbit_patches_b80812a7c9.png differ diff --git a/backend/public/uploads/thumbnail_project_design_in_project_management_107e06e2fa.png b/backend/public/uploads/thumbnail_project_design_in_project_management_107e06e2fa.png new file mode 100644 index 0000000..a5b5a09 Binary files /dev/null and b/backend/public/uploads/thumbnail_project_design_in_project_management_107e06e2fa.png differ diff --git a/backend/public/uploads/thumbnail_selfiesat_df406db0bd.jpg b/backend/public/uploads/thumbnail_selfiesat_df406db0bd.jpg new file mode 100644 index 0000000..9621cc6 Binary files /dev/null and b/backend/public/uploads/thumbnail_selfiesat_df406db0bd.jpg differ diff --git a/backend/public/uploads/ultra_detailed_nebula_abstract_wallpaper_4_1562_749_220b7e2587.avif b/backend/public/uploads/ultra_detailed_nebula_abstract_wallpaper_4_1562_749_220b7e2587.avif new file mode 100644 index 0000000..17b6253 Binary files /dev/null and b/backend/public/uploads/ultra_detailed_nebula_abstract_wallpaper_4_1562_749_220b7e2587.avif differ diff --git a/frontend/src/app/_homeComponents/GlobeWithStats.tsx b/frontend/src/app/_homeComponents/GlobeWithStats.tsx index cd5a582..2a89279 100644 --- a/frontend/src/app/_homeComponents/GlobeWithStats.tsx +++ b/frontend/src/app/_homeComponents/GlobeWithStats.tsx @@ -17,7 +17,7 @@ export default function GlobeWithStats() {
- +
diff --git a/frontend/src/app/satellites/[satelliteSlug]/_orbitDataGraphComponents/ScrollBarThumb.tsx b/frontend/src/app/satellites/[satelliteSlug]/_orbitDataGraphComponents/ScrollBarThumb.tsx index c936914..6ffdfbd 100644 --- a/frontend/src/app/satellites/[satelliteSlug]/_orbitDataGraphComponents/ScrollBarThumb.tsx +++ b/frontend/src/app/satellites/[satelliteSlug]/_orbitDataGraphComponents/ScrollBarThumb.tsx @@ -87,7 +87,7 @@ const ScrollBarThumb: React.FC = ({ window.removeEventListener("mouseup", handleMouseUp); window.removeEventListener("mousemove", handleMouseMove); }; - }, [scrollBarThumbWidth, svgContainerRect]); + }, [scrollBarThumbWidth, svgContainerRect, handleChartScroll]); const handleMouseDown = ( e: React.MouseEvent, diff --git a/frontend/src/app/satellites/[satelliteSlug]/launchDateCountDown.tsx b/frontend/src/app/satellites/[satelliteSlug]/launchDateCountDown.tsx index eef6d79..b776690 100644 --- a/frontend/src/app/satellites/[satelliteSlug]/launchDateCountDown.tsx +++ b/frontend/src/app/satellites/[satelliteSlug]/launchDateCountDown.tsx @@ -3,6 +3,8 @@ import React, { useState, useEffect } from "react"; export type LaunchDateCountDownProps = { launchDate: string | Date | undefined; + missionStatus: string | undefined | null; + orbitalData: any; }; /** @@ -14,6 +16,8 @@ export type LaunchDateCountDownProps = { */ const LaunchDateCountDown: React.FC = ({ launchDate: launchDateString, + missionStatus: status, + orbitalData: orbitalData, }) => { const [displayTime, setDisplayTime] = useState([ "0 days", @@ -23,15 +27,18 @@ const LaunchDateCountDown: React.FC = ({ ]); const [hasLaunched, setHasLaunched] = useState(true); const [columns, setColumns] = useState("grid grid-cols-4"); + const isMissionStatusInOrbit = status === "IN ORBIT"; useEffect(() => { if (!launchDateString) return; const launchDate = new Date(launchDateString); - const intervalId = setInterval(() => { const now = new Date(); - const differenceReal = launchDate.getTime() - now.getTime(); + const timeForDifference = isMissionStatusInOrbit + ? now.getTime() + : new Date(orbitalData[orbitalData.length - 1].epoch).getTime(); + const differenceReal = launchDate.getTime() - timeForDifference; const difference = Math.abs(differenceReal); const days = Math.floor(difference / (1000 * 60 * 60 * 24)); @@ -53,7 +60,7 @@ const LaunchDateCountDown: React.FC = ({ }, 1000); return () => clearInterval(intervalId); - }, [launchDateString]); + }, [launchDateString, isMissionStatusInOrbit, orbitalData]); if (hasLaunched == undefined || launchDateString == undefined) { return <>; @@ -62,7 +69,11 @@ const LaunchDateCountDown: React.FC = ({ <>
{hasLaunched ? ( -

TIME SINCE LAUNCH

+ isMissionStatusInOrbit ? ( +

TIME SINCE LAUNCH

+ ) : ( +

TIME IN ORBIT

+ ) ) : (

TIME UNTIL LAUNCH

)} diff --git a/frontend/src/app/satellites/[satelliteSlug]/orbitDataGraph.tsx b/frontend/src/app/satellites/[satelliteSlug]/orbitDataGraph.tsx index 5d0eb02..74252f6 100644 --- a/frontend/src/app/satellites/[satelliteSlug]/orbitDataGraph.tsx +++ b/frontend/src/app/satellites/[satelliteSlug]/orbitDataGraph.tsx @@ -1,6 +1,6 @@ "use client"; -import React, { useState, useLayoutEffect, useRef } from "react"; +import React, { useState, useLayoutEffect, useRef, useCallback } from "react"; import { XAxis, CartesianGrid, @@ -109,43 +109,49 @@ const OrbitDataGraph: React.FC = ({ }; // Callback function for updating the chart when the scrollbar thumb is moved - const handleChartScroll = ( - thumbX: number, - svgContainerRect: ScrollBarThumbProps["svgContainerRect"], - ) => { - // Ratio of the thumb left border position to the svg container width - const dateRatio = - (thumbX - svgContainerRect.topLeft) / svgContainerRect.width; - // Taking the last date of the data period (first date is the launch date) - const lastDataDate = new Date( - orbitalData[orbitalData.length - 1].epoch.slice(0, 23) + "Z", - ); - // Calculating the displayed period in milliseconds - const displayedPeriodMs = lastDataDate.getTime() - launchDate.getTime(); - // Calculating the first and last date of the chart - const firstChartDate = new Date( - launchDate.getTime() + displayedPeriodMs * dateRatio, - ); - const lastChartDate = new Date(firstChartDate); - lastChartDate.setMonth( - firstChartDate.getMonth() + scrollBarTimeFrame.current, - ); - // Filtering the data to display only the data in the selected period - const filteredData = orbitalData - .filter((data: any) => { - const dataDate = new Date(data.epoch.slice(0, 23) + "Z"); - return dataDate >= firstChartDate && dataDate <= lastChartDate; - }) - .map((data: any) => { - return { - ...data, - semiMajorAxis: data.semiMajorAxis - 6371, - epoch: new Date(data.epoch.slice(0, 23) + "Z"), - }; - }); + const handleChartScroll = useCallback( + ( + thumbX: number, + svgContainerRect: ScrollBarThumbProps["svgContainerRect"], + ) => { + // Ratio of the thumb left border position to the svg container width + const dateRatio = + (thumbX - svgContainerRect.topLeft) / svgContainerRect.width; + // Taking the last date of the data period (first date is the launch date) + const lastDataDate = new Date( + orbitalData[orbitalData.length - 1].epoch.slice(0, 23) + "Z", + ); + // Calculating the displayed period in milliseconds + const displayedPeriodMs = + lastDataDate.getTime() - launchDate.getTime(); + // Calculating the first and last date of the chart + const firstChartDate = new Date( + launchDate.getTime() + displayedPeriodMs * dateRatio, + ); + const lastChartDate = new Date(firstChartDate); + lastChartDate.setMonth( + firstChartDate.getMonth() + scrollBarTimeFrame.current, + ); + // Filtering the data to display only the data in the selected period + const filteredData = orbitalData + .filter((data: any) => { + const dataDate = new Date(data.epoch.slice(0, 23) + "Z"); + return ( + dataDate >= firstChartDate && dataDate <= lastChartDate + ); + }) + .map((data: any) => { + return { + ...data, + semiMajorAxis: data.semiMajorAxis - 6371, + epoch: new Date(data.epoch.slice(0, 23) + "Z"), + }; + }); - setChartData(filteredData); - }; + setChartData(filteredData); + }, + [orbitalData, launchDate, scrollBarTimeFrame, setChartData], + ); // Layout effect to track the size of the container and update the svg size useLayoutEffect(() => { @@ -188,9 +194,7 @@ const OrbitDataGraph: React.FC = ({ updateSize(); return () => window.removeEventListener("resize", updateSize); - }, []); - - console.log("orbitalData", orbitalData); + }, [handleChartScroll, months]); return ( <> diff --git a/frontend/src/app/satellites/[satelliteSlug]/page.tsx b/frontend/src/app/satellites/[satelliteSlug]/page.tsx index 9cb9881..3346bba 100644 --- a/frontend/src/app/satellites/[satelliteSlug]/page.tsx +++ b/frontend/src/app/satellites/[satelliteSlug]/page.tsx @@ -58,7 +58,7 @@ export default async function SatelliteInfoPage({ // Get the satellite attributes let satAttributes = graphqlData?.data?.satellites?.data[0]?.attributes; - + console.log("satAttributes", satAttributes); // If the satellite is not found return a message if (!satAttributes?.catalogNumberNORAD) { return
Satellite not found
; @@ -74,8 +74,6 @@ export default async function SatelliteInfoPage({ imageURL = STRAPI_URL + satelliteImage; } - console.log("satAttributes", satAttributes); - return ( <>
@@ -114,9 +112,17 @@ export default async function SatelliteInfoPage({ : null}

-
- -
+ + {satAttributes.missionStatus === "IN ORBIT" ? ( +
+ {" "} + +
+ ) : null}
{/* Image container */}
@@ -140,12 +146,14 @@ export default async function SatelliteInfoPage({
) : null} {/* Container for map */} - {noradId ? ( + {noradId && satAttributes.missionStatus === "IN ORBIT" ? (
diff --git a/frontend/src/components/satelliteData/SatelliteDataHome.tsx b/frontend/src/components/satelliteData/SatelliteDataHome.tsx index 559e840..c818572 100644 --- a/frontend/src/components/satelliteData/SatelliteDataHome.tsx +++ b/frontend/src/components/satelliteData/SatelliteDataHome.tsx @@ -1,17 +1,21 @@ "use client"; import { useState, useEffect } from "react"; import { convertSatrec, SatelliteInfo } from "@/lib/convertSatrec"; -import { useSatelliteStore } from "@/lib/store"; +import { SatelliteNumber, useSatelliteStore } from "@/lib/store"; import { flag } from "country-emoji"; - const updateInterval = 50; // in ms /** * Renders the SatelliteDataHome component. * This component displays information about a selected satellite, such as velocity, altitude, latitude, longitude, and country. */ -export default function SatelliteDataHome() { - const { selectedSatellite, satNumToEntry } = useSatelliteStore(); +export default function SatelliteDataHome({ + satelliteNum, +}: { + satelliteNum: string | null; +}) { + const { selectedSatellite, setSelectedSatellite, satNumToEntry } = + useSatelliteStore(); const [satelliteInfo, setSatelliteInfo] = useState( null, ); @@ -19,6 +23,10 @@ export default function SatelliteDataHome() { // Update satellite info every `updateInterval` ms useEffect(() => { const intervalId = setInterval(() => { + if (satelliteNum) { + const satelliteNumber = parseInt(satelliteNum, 10); + setSelectedSatellite(satelliteNumber as SatelliteNumber); + } if (selectedSatellite) { // Access satellite data by name const satData = satNumToEntry[selectedSatellite]; @@ -32,10 +40,9 @@ export default function SatelliteDataHome() { } } }, updateInterval); - - // Clear interval on component unmount + // Clear interval on component unmounts return () => clearInterval(intervalId); - }, [satNumToEntry, selectedSatellite]); + }, [satNumToEntry, selectedSatellite, satelliteNum, setSelectedSatellite]); return (