academia/docs/architecture/diagrams/08-c4-context.svg

1 line
17 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" data-diagram-type="DESCRIPTION" height="702px" preserveAspectRatio="none" style="width:934px;height:702px;background:#FFFFFF;" version="1.1" viewBox="0 0 934 702" width="934px" zoomAndPan="magnify"><title>Sistema de Registro de Estudiantes - Diagrama de Contexto (C4 Level 1)</title><defs/><g><g class="title" data-source-line="5"><text fill="#000000" font-family="Verdana" font-size="22" font-weight="bold" lengthAdjust="spacing" textLength="901.0869" x="15" y="35.4209">Sistema de Registro de Estudiantes - Diagrama de Contexto (C4 Level 1)</text></g><!--entity system--><g class="entity" data-entity="system" data-source-line="14" data-uid="ent0004" id="entity_system"><rect fill="#ADD8E6" height="68.8906" rx="5" ry="5" style="stroke:#495057;stroke-width:1;" width="178.3408" x="333.0607" y="341.8894"/><text fill="#000000" font-family="Verdana" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="136.2061" x="354.1281" y="364.8845">&#171;Software System&#187;</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="158.3408" x="343.0607" y="381.1814">Sistema de Inscripci&#243;n</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="77.1572" x="343.0607" y="397.4782">Acad&#233;mica</text></g><!--entity database--><g class="entity" data-entity="database" data-source-line="17" data-uid="ent0005" id="entity_database"><rect fill="#D3D3D3" height="68.8906" rx="5" ry="5" style="stroke:#495057;stroke-width:1;" width="154.2686" x="162.1007" y="602.6494"/><text fill="#000000" font-family="Verdana" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="132.2686" x="173.1007" y="625.6445">&#171;External System&#187;</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="101.1992" x="188.6354" y="641.9414">Base de Datos</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="78.0664" x="188.6354" y="658.2382">SQL Server</text></g><!--entity smtp--><g class="entity" data-entity="smtp" data-source-line="20" data-uid="ent0006" id="entity_smtp"><rect fill="#D3D3D3" height="68.8906" rx="5" ry="5" style="stroke:#495057;stroke-width:1;" width="154.2686" x="530.1007" y="602.6494"/><text fill="#000000" font-family="Verdana" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="132.2686" x="541.1007" y="625.6445">&#171;External System&#187;</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="101.0488" x="556.7106" y="641.9414">Servidor SMTP</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="49.7656" x="556.7106" y="658.2382">(Email)</text></g><!--entity student--><g class="entity" data-entity="student" data-source-line="11" data-uid="ent0002" id="entity_student"><ellipse cx="90.2329" cy="94.0663" fill="#FFFFFF" rx="8" ry="8" style="stroke:#000000;stroke-width:1;"/><path d="M90.2329,102.0663 L90.2329,129.0663 M77.2329,110.0663 L103.2329,110.0663 M90.2329,129.0663 L77.2329,144.0663 M90.2329,129.0663 L103.2329,144.0663" fill="none" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="74.833" x="52.8163" y="159.0614">Estudiante</text><text fill="#000000" font-family="Verdana" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="73.4043" x="53.5307" y="81.7645">&#171;Persona&#187;</text></g><!--entity admin--><g class="entity" data-entity="admin" data-source-line="12" data-uid="ent0003" id="entity_admin"><ellipse cx="755.2307" cy="94.0663" fill="#FFFFFF" rx="8" ry="8" style="stroke:#000000;stroke-width:1;"/><path d="M755.2307,102.0663 L755.2307,129.0663 M742.2307,110.0663 L768.2307,110.0663 M755.2307,129.0663 L742.2307,144.0663 M755.2307,129.0663 L768.2307,144.0663" fill="none" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="99.0801" x="705.6907" y="159.0614">Administrador</text><text fill="#000000" font-family="Verdana" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="73.4043" x="718.5286" y="81.7645">&#171;Persona&#187;</text></g><g class="entity" data-entity="GMN11" data-source-line="29" data-uid="ent0012" id="entity_GMN11"><path d="M163.2807,57.6094 L163.2807,111.5694 L128.1207,115.5694 L163.2807,119.5694 L163.2807,173.5391 A0,0 0 0 0 163.2807,173.5391 L405.1855,173.5391 A0,0 0 0 0 405.1855,173.5391 L405.1855,67.6094 L395.1855,57.6094 L163.2807,57.6094 A0,0 0 0 0 163.2807,57.6094" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><path d="M395.1855,57.6094 L395.1855,67.6094 L405.1855,67.6094 L395.1855,57.6094" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="78.9077" x="169.2807" y="74.6763">Estudiante</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="161.4146" x="169.2807" y="89.8091">Usuario del sistema que:</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="183.8535" x="169.2807" y="104.9419">- Se registra y activa cuenta</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="217.1089" x="169.2807" y="120.0747">- Se inscribe en materias (m&#225;x 3)</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="194.0669" x="169.2807" y="135.2075">- Ve sus compa&#241;eros de clase</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="180.5337" x="169.2807" y="150.3403">- Consulta sus inscripciones</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="220.9048" x="169.2807" y="165.4731">- Accede a su dashboard personal</text></g><g class="entity" data-entity="GMN14" data-source-line="39" data-uid="ent0015" id="entity_GMN14"><path d="M440.0607,72.7394 L440.0607,158.4034 A0,0 0 0 0 440.0607,158.4034 L670.4064,158.4034 A0,0 0 0 0 670.4064,158.4034 L670.4064,119.5694 L705.4607,115.5694 L670.4064,111.5694 L670.4064,82.7394 L660.4064,72.7394 L440.0607,72.7394 A0,0 0 0 0 440.0607,72.7394" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><path d="M660.4064,72.7394 L660.4064,82.7394 L670.4064,82.7394 L660.4064,72.7394" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="104.8633" x="446.0607" y="89.8063">Administrador</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="162.6968" x="446.0607" y="104.9391">Usuario privilegiado que:</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="209.3457" x="446.0607" y="120.0719">- Gestiona todos los estudiantes</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="197.647" x="446.0607" y="135.2047">- Crea, edita, elimina registros</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="170.4663" x="446.0607" y="150.3375">- Visualiza todo el sistema</text></g><g class="entity" data-entity="GMN17" data-source-line="47" data-uid="ent0018" id="entity_GMN17"><path d="M546.8307,280.5394 L546.8307,372.3294 L511.8607,376.3294 L546.8307,380.3294 L546.8307,472.1331 A0,0 0 0 0 546.8307,472.1331 L817.6364,472.1331 A0,0 0 0 0 817.6364,472.1331 L817.6364,290.5394 L807.6364,280.5394 L546.8307,280.5394 A0,0 0 0 0 546.8307,280.5394" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><path d="M807.6364,280.5394 L807.6364,290.5394 L817.6364,290.5394 L807.6364,280.5394" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="249.8057" x="552.8307" y="297.6063">Sistema de Inscripci&#243;n Acad&#233;mica</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="185.5483" x="552.8307" y="312.7391">Aplicaci&#243;n web que permite:</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="207.1685" x="552.8307" y="327.8719">- Autenticaci&#243;n (JWT + PBKDF2)</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="147.0181" x="552.8307" y="343.0047">- CRUD de estudiantes</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="160.9004" x="552.8307" y="358.1375">- Inscripci&#243;n en materias</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="216.2075" x="552.8307" y="373.2703">- Validaci&#243;n de reglas de negocio</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="198.0786" x="552.8307" y="388.4031">- Visualizaci&#243;n de compa&#241;eros</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="4.1323" x="552.8307" y="403.536">&#160;</text><text fill="#000000" font-family="Verdana" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="45.8999" x="552.8307" y="418.6688">Stack:</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="138.3345" x="552.8307" y="433.8016">Frontend: Angular 21</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="191.7563" x="552.8307" y="448.9344">Backend: .NET 10 + GraphQL</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="229.6265" x="552.8307" y="464.0672">Auth: JWT + Roles (Admin/Student)</text></g><g class="entity" data-entity="GMN20" data-source-line="62" data-uid="ent0021" id="entity_GMN20"><path d="M351.6207,579.1294 L351.6207,633.0994 L316.8607,637.0994 L351.6207,641.0994 L351.6207,695.0591 A0,0 0 0 0 351.6207,695.0591 L494.8448,695.0591 A0,0 0 0 0 494.8448,695.0591 L494.8448,589.1294 L484.8448,579.1294 L351.6207,579.1294 A0,0 0 0 0 351.6207,579.1294" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><path d="M484.8448,579.1294 L484.8448,589.1294 L494.8448,589.1294 L484.8448,579.1294" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="122.2241" x="357.6207" y="596.1963">SQL Server 2022</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="68.8657" x="357.6207" y="611.3291">Almacena:</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="108.8179" x="357.6207" y="626.4619">- Usuarios (auth)</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="85.084" x="357.6207" y="641.5947">- Estudiantes</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="77.3779" x="357.6207" y="656.7275">- Profesores</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="64.7969" x="357.6207" y="671.8603">- Materias</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="93.7485" x="357.6207" y="686.9931">- Inscripciones</text></g><g class="entity" data-entity="GMN23" data-source-line="72" data-uid="ent0024" id="entity_GMN23"><path d="M718.9107,601.8294 L718.9107,633.0994 L684.5807,637.0994 L718.9107,641.0994 L718.9107,672.3606 A0,0 0 0 0 718.9107,672.3606 L891.5562,672.3606 A0,0 0 0 0 891.5562,672.3606 L891.5562,611.8294 L881.5562,601.8294 L718.9107,601.8294 A0,0 0 0 0 718.9107,601.8294" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><path d="M881.5562,601.8294 L881.5562,611.8294 L891.5562,611.8294 L881.5562,601.8294" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="125.8994" x="724.9107" y="618.8963">Servicio de Email</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="33.4966" x="724.9107" y="634.0291">Para:</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="151.6455" x="724.9107" y="649.1619">- C&#243;digos de activaci&#243;n</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="100.2358" x="724.9107" y="664.2947">- Notificaciones</text></g><!--link student to system--><g class="link" data-entity-1="student" data-entity-2="system" data-source-line="23" data-uid="lnk7" id="link_student_system"><path d="M128.3007,156.9494 C134.1607,162.6794 140.2507,168.3694 146.2307,173.5394 C220.4507,237.6694 308.8843,299.7374 365.7743,338.0574" fill="none" id="student-to-system" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="370.7507,341.4094,365.5208,333.0638,366.6037,338.6161,361.0515,339.699,370.7507,341.4094" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="171.4692" x="242.6107" y="216.6063">Se registra, activa cuenta,</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="155.9365" x="250.3771" y="231.7391">se inscribe en materias,</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="158.1265" x="249.2821" y="246.8719">ve compa&#241;eros de clase</text></g><!--link admin to system--><g class="link" data-entity-1="admin" data-entity-2="system" data-source-line="24" data-uid="lnk8" id="link_admin_system"><path d="M705.2407,160.1194 C699.5807,164.7394 693.8307,169.2894 688.2307,173.5394 C620.3507,224.9794 596.5907,228.3994 529.2307,280.5394 C504.5007,299.6794 482.6197,318.8808 462.2697,337.5708" fill="none" id="admin-to-system" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="457.8507,341.6294,467.185,338.4875,461.5332,338.2472,461.7736,332.5955,457.8507,341.6294" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="137.8901" x="646.7707" y="224.1063">Gestiona estudiantes</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="112.5884" x="659.4216" y="239.2391">(CRUD completo)</text></g><!--link system to database--><g class="link" data-entity-1="system" data-entity-2="database" data-source-line="25" data-uid="lnk9" id="link_system_database"><path d="M398.3107,411.1594 C363.2407,460.7494 301.7053,547.7607 266.6253,597.3607" fill="none" id="system-to-database" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="263.1607,602.2594,271.6234,597.2212,266.0479,598.1772,265.0918,592.6017,263.1607,602.2594" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="86.3218" x="377.0752" y="515.1963">Lee y escribe</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="119.5898" x="360.4412" y="530.3291">datos de usuarios,</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="177.0107" x="331.7307" y="545.4619">estudiantes e inscripciones</text></g><!--link system to smtp--><g class="link" data-entity-1="system" data-entity-2="smtp" data-source-line="26" data-uid="lnk10" id="link_system_smtp"><path d="M449.1607,411.0194 C468.7707,435.8594 495.7307,470.6694 518.2307,502.1294 C542.2007,535.6294 564.8373,569.958 582.4873,597.308" fill="none" id="system-to-smtp" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="585.7407,602.3494,584.2215,592.6184,583.0295,598.1482,577.4997,596.9562,585.7407,602.3494" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="89.8003" x="549.4507" y="522.6963">Env&#237;a c&#243;digos</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="86.8169" x="550.9424" y="537.8291">de activaci&#243;n</text></g><!--SRC=[ZLLVRnev47_VJp5DNq3Nj0bjT5U4a0Y1gcrQqP2sBxmCkmDOzTfRsqkJg_9X-dWFzt3gH-2BtTZU1POcKf4Gs3Cxy_ipzZvoAye92eb29VQBK0KQpC5Gwb0j9PrZ-cLfTAcoePRQmEFnN-ENuy6zgTfaPAgq5o_FJix-J18dd2IO2kieHyW8hcZ92wFz_v5rPIPGER9m31S2brmmP0qrRzuu3QtX2xYaDKauRIVtTONl2V3dAa8qYWoSdYHtIOAfOo17knv7W1RyYfI3Ncz2ncg5_NwTESXoeJmspBG9oUXt6gd9hk_H7gdNogP65AdO_5GpDKWns_oJYnHZorkVnsMcUk6-eM4vmaw_3u-bMAxSN9QUnbsZ-ZbQygKlq6axKzCFbp0biwQ8B4E7Sv_Hwurk71c5yh0gQtdxIrLVGZ0zcBwxdinKQvIZaEq8CtV5RvMh9Jm-xjVSkeoDBGdEuXDWGSKQ8Iqv3P_C5ECKGQ4v0Id8aLi8j1nP4wGwBt3p7nbjFTzKCgqaAj_ey8gi4-m2q6vgcC7mwkD5g279wNPIfVidjnfrUO88Rld1066cCg-fRrRQ4etG7ibULQZXig6Q0_j5WqfT6AdrvbzckFcPYQNtXuj5rc46aaHfnufuuK0lwgdZIUtD-xk9x3sRztdlOqJ1W2JOQgY-bjJbqF6-i4oXeMmTlqzRQEMR7pVml1sIFX7OqjuljO_pSREbT1YocjnzU92cv0boc5Mrgxb6aq4HJuLCI6NW-LQi9Iq2wU1XfDmuMWUi2oFMGZ95ZkreRzrsEcEqahzx3aNGXdZMA1FE_qZ1BR3MIiUKJuARIF5tB0CxVGynxvmALaVK3nnms9tlYigWaBo8mMyqzooyEhbm5Pj1wTYmRKxhpUTh-0CcvsylnfteK1XZRdH8ij5upzz8ZxbbLSqip8d4uAoYfMR_cXfiy_R68AcOEhxcknMRiV6NhygwC53BKgA1pYbl-pT1s7twVdJDTomJU6MmM7suz0gKRjM5IEjAIpv3hU3viscS_FQ3WjUdj0AolUQWSzBfrFhA75DI6CMi1eTR87UDyeqEP9iOlI2hJRLyjw_QwyPyFpW8VD0hJFxEJ4LyO_dxia8ruHTHH3IihW4uk0LyxBrsOX6SRxRx7m00]--></g></svg>