Laboratorio paradigmas: Stackoverflow
Se presenta proyecto semestral de laboratorio de la asignatura "Paradigmas de programación" de la Universidad Santiago de Chile, que consta en la creación de un clon de la aplicación Stackoverflow en el lenguaje Java, que consolida los conocimientos del paradigma orientado a objetos.
- Paradigma: Orientado a objetos
- Lenguage: Java (https://docs.oracle.com/en/java/), OpenJDK versión 11
- Intérprete: IntelliJ IDEA Community 2020.3
- Compilador: Gradle
- El ambiente de desarrollo donde se ejecutó el entregable corresponde a macOS 10.15 Catalina
- Versión exacta de JDK: OpenJDK versión 11
Abstracción | Contexto | Características (Qué) |
---|---|---|
Stack | Estructura base que funciona como contenedor de usuarios, preguntas, y etiquetas. | Lista de listas que se encarga de contener una serie de estructuras (del tipo lista), tales como: usuarios, preguntas, recompensas, respuestas y búsqueda dentro de la plataforma. |
Usuario (User) | Persona que publica, edita y elimina tanto preguntas como respuestas, ofrece recompensas, vota, reporta, entre otros. |
- Lista que posee credenciales de acceso y reputación - Ofrece reputación, pregunta y responde, da ranking, etc. dentro de la plataforma. |
Pregunta (Question) | Enunciado interrogativo realizado por un usuario sobre diversas tecnologías relacionadas a la ingeniería de software en la plataforma. |
- Lista que puede ser editada, modificada y eliminada. - Es creada por un usuario y recibe ranking por medio del mismo. - Posee textos con formato (negrita, cursiva) imágenes, enlaces y código - Posee un ID, votaciones (positivas y negativas), visualizaciones, etiquetas, título, contenido, fecha de publicación, fecha de última modificación , etc. - Es referenciada por una respuesta a través de su ID. |
Respuesta (Answer) | Enunciado que responde a una pregunta realizada por un usuario sobre diversas tecnologías relacionadas a la ingeniería de software en la plataforma |
- Lista que recibe ranking y referencia una pregunta. - Es creada por un usuario, quien puede recibir una bonificación (reputación) si esta es aceptada. - Posee un autor (usuario), fecha de publicación, votos (favor y contra), estado de aceptación (sí/no), reportes de ofensa y categorías (mejor respuesta, peor respuesta, etc). |
Recompensa (Reward) | Bonificación que genera un usuario y que compensa la utilidad de una pregunta dentro de la plataforma. |
- Lista que posee una descripción, id de pregunta y usuario que la otorgó. - Bonifica una pregunta y posee diversas reglas en su aplicación. |
Auth | Interface que setea las principales operaciones de auth como register, login y logout. | - Directiva que fija comportamientos de autenticación en la declaración de sus métodos. |
- Comando para correr compilador Gradle en terminal:
./gradlew run
- Más sobre los requerimientos y especificaciones: Link a la actividad