diff --git a/README.md b/README.md index 867cc3c..c020167 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,38 @@ We implemented analytics endpoints in the backend to log user interactions with In this [link](https://lookerstudio.google.com/reporting/8211ae21-6964-49d6-a30e-3ee5b7d009b1) you can access the live reports generated by the Analytics Pipeline. They're categorized by the following topics (following the business questions semantics): -- Crashlytics -- User Experience -- Feature Usage -- Monetization +### Crashlytics + +#### Overview + +image + +#### Issues Detailed + +image + +### User Experience + +#### Meetings + +image + +#### User Satisfaction + +image + +#### Place Recommendations + +image + +### Feature Usage + +#### Google Analytics + +image + +### Monetization + +#### User Engagement (Ads) + +image diff --git a/dashboards/BQ2.3.pdf b/dashboards/BQ2.3.pdf deleted file mode 100644 index 09ae613..0000000 Binary files a/dashboards/BQ2.3.pdf and /dev/null differ diff --git a/dashboards/bq2.1.pdf b/dashboards/bq2.1.pdf deleted file mode 100644 index dd1249e..0000000 Binary files a/dashboards/bq2.1.pdf and /dev/null differ diff --git a/dashboards/bq3.4.pdf b/dashboards/bq3.4.pdf deleted file mode 100644 index 25236c9..0000000 Binary files a/dashboards/bq3.4.pdf and /dev/null differ diff --git a/dashboards/bq4.1.pdf b/dashboards/bq4.1.pdf deleted file mode 100644 index 909cde1..0000000 Binary files a/dashboards/bq4.1.pdf and /dev/null differ diff --git a/dashboards/bq5.2.pdf b/dashboards/bq5.2.pdf deleted file mode 100644 index b87ea0e..0000000 Binary files a/dashboards/bq5.2.pdf and /dev/null differ diff --git a/excel_mockups/BQ2.3.xlsx b/excel_mockups/BQ2.3.xlsx deleted file mode 100644 index be1b736..0000000 Binary files a/excel_mockups/BQ2.3.xlsx and /dev/null differ diff --git a/excel_mockups/bq2.1.xlsx b/excel_mockups/bq2.1.xlsx deleted file mode 100644 index cca2820..0000000 Binary files a/excel_mockups/bq2.1.xlsx and /dev/null differ diff --git a/excel_mockups/bq3.4.xlsx b/excel_mockups/bq3.4.xlsx deleted file mode 100644 index d8a4fcd..0000000 Binary files a/excel_mockups/bq3.4.xlsx and /dev/null differ diff --git a/excel_mockups/bq4.1.xlsx b/excel_mockups/bq4.1.xlsx deleted file mode 100644 index afe9935..0000000 Binary files a/excel_mockups/bq4.1.xlsx and /dev/null differ diff --git a/excel_mockups/bq5.2.xlsx b/excel_mockups/bq5.2.xlsx deleted file mode 100644 index f733ea5..0000000 Binary files a/excel_mockups/bq5.2.xlsx and /dev/null differ diff --git a/generators/BQ2.3.py b/generators/BQ2.3.py deleted file mode 100644 index 1d30626..0000000 --- a/generators/BQ2.3.py +++ /dev/null @@ -1,44 +0,0 @@ -import pandas as pd -import numpy as np -from faker import Faker -fake = Faker() - -# Crear datos falsos para la tabla -np.random.seed(0) # Para reproducibilidad -num_rows = 100 -user_ids = [fake.unique.uuid4() for _ in range(num_rows)] -session_ids = [fake.unique.uuid4() for _ in range(num_rows)] -dates = [fake.date_this_year() for _ in range(num_rows)] -start_times = [fake.time() for _ in range(num_rows)] -end_times = [fake.time() for _ in range(num_rows)] -sections = np.random.choice(['Calendario', 'Tareas', 'Notificaciones', 'Configuración'], num_rows) -events = np.random.choice(['add_friend', 'chat', 'share_schedule'], num_rows) - - -# Calcular duraciones de las sesiones y el tiempo en cada sección -durations = np.random.randint(5, 120, num_rows) # Duración de sesión entre 5 y 120 minutos -retention = np.random.randint(0, 100, num_rows) # retencion de usuario en porcentaje -durations = np.random.randint(5, 10, num_rows) # veces que entraron a la aplicacion -time_in_section = np.random.randint(1, durations) # Tiempo en la sección no puede ser mayor que la duración de la sesión -interactions = np.random.randint(1, 20, num_rows) # Número de interacciones por sesión - -# Crear el DataFrame -df = pd.DataFrame({ - 'UserID': user_ids, - 'SessionID': session_ids, - 'Fecha': dates, - 'HoraInicio': start_times, - 'HoraFin': end_times, - 'DuracionSesion (minutos)': durations, - 'Seccion': sections, - 'TiempoEnSeccion (minutos)': time_in_section, - 'Interacciones': interactions, - 'Evento': events, - 'retencion':retention, - -}) - -# Define the file path where you want to save the Excel file -file_path = 'BQ2.3.xlsx' - -df.to_excel(file_path, index=False) \ No newline at end of file diff --git a/generators/bq2.1.py b/generators/bq2.1.py deleted file mode 100644 index 5b2f5f7..0000000 --- a/generators/bq2.1.py +++ /dev/null @@ -1,30 +0,0 @@ -import pandas as pd -import numpy as np - -np.random.seed(42) -num_rows = 100 -user_ids = np.arange(1, num_rows + 1) -user_types = np.random.choice(['Nuevo', 'Frecuente', 'Ocasional'], size=num_rows) - -booking_attempt_dates = pd.date_range(start="2024-01-01", end="2024-03-31", freq='8H')[:num_rows] - - -buildings = ['ML', 'SD', 'O', 'W', 'RGD'] -rooms = ['102', '202', '301', '302'] -space_ids = [np.random.choice(buildings) + np.random.choice(rooms) for _ in range(num_rows)] - -ease_of_use_scores = np.random.randint(1, 6, size=num_rows) -availability_scores = np.random.randint(1, 6, size=num_rows) -overall_satisfaction_scores = np.random.randint(1, 6, size=num_rows) -feedback_comments = np.random.choice(['Todo bien', 'Necesita mejoras', 'Excelente', 'Frustrante', 'Confuso'], size=num_rows) - -df_updated = pd.DataFrame({ - 'UserID': user_ids, - 'UserType': user_types, - 'BookingAttemptDate': booking_attempt_dates, - 'SpaceID': space_ids, - 'EaseOfUseScore': ease_of_use_scores, - 'AvailabilityScore': availability_scores, - 'OverallSatisfactionScore': overall_satisfaction_scores, - 'FeedbackComments': feedback_comments -}) \ No newline at end of file diff --git a/generators/bq3.4.py b/generators/bq3.4.py deleted file mode 100644 index 628a2e2..0000000 --- a/generators/bq3.4.py +++ /dev/null @@ -1,37 +0,0 @@ -import pandas as pd -import numpy as np -from faker import Faker -fake = Faker() - -# Crear datos falsos para la tabla -np.random.seed(0) # Para reproducibilidad -num_rows = 100 -user_ids = [fake.unique.uuid4() for _ in range(num_rows)] -session_ids = [fake.unique.uuid4() for _ in range(num_rows)] -dates = [fake.date_this_year() for _ in range(num_rows)] -start_times = [fake.time() for _ in range(num_rows)] -end_times = [fake.time() for _ in range(num_rows)] -sections = np.random.choice(['Calendario', 'Tareas', 'Notificaciones', 'Configuración'], num_rows) -events = np.random.choice(['Ver', 'Editar', 'Crear'], num_rows) -costumization = np.random.choice(['BackGround_image', 'ChangeColor_Box', 'user_Icon'], num_rows) - -# Calcular duraciones de las sesiones y el tiempo en cada sección -durations = np.random.randint(5, 120, num_rows) # Duración de sesión entre 5 y 120 minutos -time_in_section = np.random.randint(1, durations) # Tiempo en la sección no puede ser mayor que la duración de la sesión -interactions = np.random.randint(1, 20, num_rows) # Número de interacciones por sesión - -# Crear el DataFrame -df = pd.DataFrame({ - 'UserID': user_ids, - 'SessionID': session_ids, - 'Fecha': dates, - 'HoraInicio': start_times, - 'HoraFin': end_times, - 'DuracionSesion (minutos)': durations, - 'Seccion': sections, - 'TiempoEnSeccion (minutos)': time_in_section, - 'Interacciones': interactions, - 'Evento': events -}) - -df.to_excel("bq3.4", index=False) \ No newline at end of file diff --git a/generators/bq4.1.py b/generators/bq4.1.py deleted file mode 100644 index 17ed42b..0000000 --- a/generators/bq4.1.py +++ /dev/null @@ -1,36 +0,0 @@ -import pandas as pd -import numpy as np -from faker import Faker -fake = Faker() - -# Crear datos falsos para la tabla -np.random.seed(0) # Para reproducibilidad -num_rows = 100 -user_ids = [fake.unique.uuid4() for _ in range(num_rows)] -session_ids = [fake.unique.uuid4() for _ in range(num_rows)] -dates = [fake.date_this_year() for _ in range(num_rows)] -start_times = [fake.time() for _ in range(num_rows)] -end_times = [fake.time() for _ in range(num_rows)] -sections = np.random.choice(['Calendario', 'Tareas', 'Notificaciones', 'Configuración'], num_rows) -events = np.random.choice(['Ver', 'Editar', 'Crear'], num_rows) - -# Calcular duraciones de las sesiones y el tiempo en cada sección -durations = np.random.randint(5, 120, num_rows) # Duración de sesión entre 5 y 120 minutos -time_in_section = np.random.randint(1, durations) # Tiempo en la sección no puede ser mayor que la duración de la sesión -interactions = np.random.randint(1, 20, num_rows) # Número de interacciones por sesión - -# Crear el DataFrame -df = pd.DataFrame({ - 'UserID': user_ids, - 'SessionID': session_ids, - 'Fecha': dates, - 'HoraInicio': start_times, - 'HoraFin': end_times, - 'DuracionSesion (minutos)': durations, - 'Seccion': sections, - 'TiempoEnSeccion (minutos)': time_in_section, - 'Interacciones': interactions, - 'Evento': events -}) - -df.to_excel(file_path, index=False) \ No newline at end of file diff --git a/generators/bq5.2.py b/generators/bq5.2.py deleted file mode 100644 index c763313..0000000 --- a/generators/bq5.2.py +++ /dev/null @@ -1,70 +0,0 @@ -import pandas as pd -import numpy as np -from faker import Faker -import random - -np.random.seed(0) - -fake = Faker() - -# Generate random data for the dataset -num_rows = 1000 - -# Generate UserIDs -user_ids = [fake.unique.uuid4() for _ in range(num_rows)] - -# Generate UserType: Nuevo, Ocasional, Frecuente -user_types = ['Nuevo', 'Ocasional', 'Frecuente'] -user_type = [random.choice(user_types) for _ in range(num_rows)] - -# Generate UserSemester: Values between 1 and 10 -user_semester = [random.randint(1, 10) for _ in range(num_rows)] - -# Generate UserCareer: ISIS, IIND, MATE, IBIO, IELE, IMEC, IQUI, ICYA, LITE, PSIC, MEDI -user_careers = ["ISIS", "IIND", "MATE", "IBIO", "IELE", "IMEC", "IQUI", "ICYA", "LITE", "PSIC", "MEDI"] -user_career = [random.choice(user_careers) for _ in range(num_rows)] - -# Generate MeetingDate -meeting_dates = [fake.date_this_year() for _ in range(num_rows)] - -# Generate DayOfWeek -days_of_week = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] -day_of_week = [random.choice(days_of_week) for _ in range(num_rows)] - -# Generate MeetingStartTime: Values between 8:00 and 17:00 -meeting_start_times = [f"{random.randint(8, 16)}:{random.choice(['00', '30'])}" for _ in range(num_rows)] - -# Generate MeetingDuration: Up to 4 hours -meeting_duration = [random.randint(15, 240) for _ in range(num_rows)] - -# Generate MeetingBuilding: ML, SD, W, R, O, C, LL, B, RGD, AU -meeting_buildings = ["ML", "SD", "W", "R", "O", "C", "LL", "B", "RGD", "AU"] -meeting_building = [random.choice(meeting_buildings) for _ in range(num_rows)] - -# Generate MeetingPurpose: Class, Leisure, Group Project, Other -meeting_purposes = ["Class", "Leisure", "Group Project", "Other"] -meeting_purpose = [random.choice(meeting_purposes) for _ in range(num_rows)] - -# Generate OverallSatisfactionScore: Values between 1 and 5 -overall_satisfaction_score = [random.randint(1, 5) for _ in range(num_rows)] - -# Create the DataFrame -df = pd.DataFrame({ - 'UserID': user_ids, - 'UserType': user_type, - 'UserSemester': user_semester, - 'UserCareer': user_career, - 'MeetingDate': meeting_dates, - 'DayOfWeek': day_of_week, - 'MeetingStartTime': meeting_start_times, - 'MeetingDuration': meeting_duration, - 'MeetingBuilding': meeting_building, - 'MeetingPurpose': meeting_purpose, - 'OverallSatisfactionScore': overall_satisfaction_score -}) - -# Display the DataFrame -print(df.head()) - -file_path = "./meeting_data.xlsx" -df.to_excel(file_path, index=False)