{"id":15211267,"url":"https://github.com/popcodelab/mdd_mvp","last_synced_at":"2026-03-10T11:02:51.436Z","repository":{"id":248254861,"uuid":"827761453","full_name":"popcodelab/MDD_MVP","owner":"popcodelab","description":"Minimized social network for developers - MVP (Minimum Viable Product)","archived":false,"fork":false,"pushed_at":"2024-08-19T12:57:14.000Z","size":2477,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-10T22:59:34.350Z","etag":null,"topics":["angular","angular-material","backend","flexbox-css","java","jpa","json","jwt-authentication","jwt-token","material-ui","oauth2","reactiveforms","rest-api","restful","scss","spring-mvc","spring-security","springboot","sql"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/popcodelab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-12T10:12:50.000Z","updated_at":"2024-11-18T16:22:36.000Z","dependencies_parsed_at":"2024-08-04T05:31:14.721Z","dependency_job_id":"cfec4cd9-6921-4700-91b8-7713c75019c7","html_url":"https://github.com/popcodelab/MDD_MVP","commit_stats":{"total_commits":46,"total_committers":1,"mean_commits":46.0,"dds":0.0,"last_synced_commit":"ab16643fe3fa47eed981d356a6f1712bc230ec23"},"previous_names":["popcodelab/mdd_mvp"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/popcodelab%2FMDD_MVP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/popcodelab%2FMDD_MVP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/popcodelab%2FMDD_MVP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/popcodelab%2FMDD_MVP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/popcodelab","download_url":"https://codeload.github.com/popcodelab/MDD_MVP/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242940015,"owners_count":20209883,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","angular-material","backend","flexbox-css","java","jpa","json","jwt-authentication","jwt-token","material-ui","oauth2","reactiveforms","rest-api","restful","scss","spring-mvc","spring-security","springboot","sql"],"created_at":"2024-09-28T08:21:45.119Z","updated_at":"2026-03-10T11:02:51.308Z","avatar_url":"https://github.com/popcodelab.png","language":"Java","readme":"# MDD\n## Table of contents\n\n- Description and goals\n- App features\n- Installation\n- Database setup\n- Run application\n- Swagger (OpenAPI)\n- Technologies\n- Compodoc\n- Screenshots\n\n## Description and goal\n\nMDD (Monde de Dév) is a social network project dedicated to developers:\nProject developed as part of the development of a project for my master's degree.\n This repository contains both the frontend and backend code for a Minimum Viable Product version.\n\n## App features\n\n### User management\n- User registration\n- Profile management\n- User session\n- Logout\n\n### Topic management\n- List all topics\n- Subscribe to topic\n- Unsubscribe from topic\n\n### Post management\n- View feed with sort by date or by title\n- Create post\n- Read post details\n- Comment post\n\n\n## Installation\n\n### Clone the Project\n\nClone these repositories :\n\u003e git clone https://github.com/popcodelab/MDD_MVP\n\n### Install Dependencies\n\n#### Back-End:\n\n\u003e mvn clean install\n\n#### Front-End:\n\n\u003e npm install\n\n### Configuring the Back-End\n\nOpen the `application.yml` file located in the `back/src/main/resources` directory to Replace the properties with your parameters or using an `.env` file :\n\n```properties\nspring:\n  datasource:\n    url: jdbc:mysql://${APP_DB_HOST}:${APP_DB_PORT}/${APP_DB_NAME}\n    username: ${APP_DB_USER}\n    password: ${APP_DB_PASS}\n\n    ...\n\napplication:\n  security:\n    jwt:\n      secret: ${JWT_SECRET_KEY}\n      expiration: ${JWT_EXPIRATION}\n\nclient:\n  url: ${CLIENT_URL}\n\n  server:\n\n  port: ${APP_BACKEND_PORT}\n\n```\n\nhere is an example of `.env` file :\n\n```properties\nAPP_DB_HOST=localhost\nAPP_DB_PORT=3306\nAPP_DB_NAME=database_name\nAPP_DB_USER=user_name\nAPP_DB_PASS=passowrd\nJWT_SECRET_KEY=your_secret_key\nJWT_EXPIRATION=86400000\nCLIENT_URL=http://localhost:4300\nAPP_BACKEND_PORT=3005\n```\n\n\n## Database setup \n\nMake sure that you have MySQL installed on your system.\n\n1. Log into MySQL using the following command :\n\u003e mysql -u `\u003cusername\u003e` -p\n\n2. Create the database :\n\n\u003e CREATE DATABASE `\u003cdatabase_name\u003e`;\n\n3. Select the created database :\n\u003e USE `\u003cdatabase_name\u003e`;\n\n\n### Build the database\n\nUse the SQL script located in `ressources\\sql\\creates_db.sql`  to create the schema :\n\n\u003e SOURCE `\u003cpath_to_script.sql\u003e`;\n     \n\n## Run application\n\n1. Frontend\n   \n   - In your terminal, run the command below.\n    \n        ```bash\n        cd front\n        npm run start\n        ```\n\n     The frontend will launch in your browser at `http://localhost:4400`\n  \n2. Backend\n\n     - In a separate terminal, run the command below.\n\n          ```bash\n          cd back\n          mvn spring-boot:run\n          ```\n\n        The backend server will launch at `http://localhost:3005`\n\n---\n\n## Swagger documentation\n\nOnce the backend started, the documentation can be browsed at : http://localhost:3005/swagger-ui/index.html\n\nUse the authentication endpoint to get a JWT token to access to the protected routes.\n\n\n\n## Technologies\n\n\u003ctable style=\"border: none\"\u003e\n\u003ctr style=\"border: none\"\u003e\n  \u003ctd style=\"border: none\"\u003eHTML5\u003c/td\u003e\u003ctd style=\"border: none\"\u003e\n  \u003cimg style=\"height: 40px;width: 40px;\" src=\"https://raw.github.com/popcodelab/svg-icons/main/html-5.svg?sanitize=true\" alt=\"HTML5\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr style=\"border: none\"\u003e\n  \u003ctd style=\"border: none\"\u003eTypeScript 5.4.3\u003c/td\u003e\u003ctd style=\"border: none\"\u003e\n  \u003cimg style=\"height: 40px;width: 40px;\" src=\"https://raw.github.com/popcodelab/svg-icons/main/typescript.svg?sanitize=true\" alt=\"TypeScript\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr style=\"border: none\"\u003e\n  \u003ctd style=\"border: none\"\u003eJavaScript\u003c/td\u003e\u003ctd style=\"border: none\"\u003e\n  \u003cimg style=\"height: 40px;width: 40px;\" src=\"https://raw.github.com/popcodelab/svg-icons/main/javascript.svg?sanitize=true\" alt=\"JavaScript\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr style=\"border: none\"\u003e\n  \u003ctd style=\"border: none\"\u003eCSS3\u003c/td\u003e\u003ctd style=\"border: none\"\u003e\n  \u003cimg style=\"height: 40px;width: 40px;\" src=\"https://raw.github.com/popcodelab/svg-icons/main/css-3.svg?sanitize=true\" alt=\"CSS3\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr style=\"border: none\"\u003e \n  \u003ctd style=\"border: none\"\u003eAngular 17.3.8\u003c/td\u003e\n  \u003ctd style=\"border: none\"\u003e\u003cimg style=\"height: 40px;width: 40px;\" src=\"https://raw.github.com/popcodelab/svg-icons/main/angular.svg?sanitize=true\" alt=\"Angular 14.1.3\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr style=\"border: none\"\u003e  \n  \u003ctd style=\"border: none\"\u003eCompodoc 1.1.25\u003c/td\u003e\n  \u003ctd style=\"border: none\"\u003e\u003cimg style=\"height: 40px;width: 40px;\" src=\"https://raw.github.com/popcodelab/svg-icons/main/compodoc.svg?sanitize=true\" alt=\"CompoDoc 1.1.23\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr style=\"border: none\"\u003e \n  \u003ctd style=\"border: none\"\u003eAngular Material 17.3.0\u003c/td\u003e\n  \u003ctd style=\"border: none\"\u003e\u003cimg style=\"height: 45px;width: 45px;padding-left: 5px\" src=\"https://raw.github.com/popcodelab/svg-icons/main/material.svg?sanitize=true\" alt=\"Angular Material 14.1.0\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr style=\"border: none\"\u003e \n  \u003ctd style=\"border: none\"\u003eMySQL 8\u003c/td\u003e\n  \u003ctd style=\"border: none\"\u003e\u003cimg style=\"height: 55px;width: 55px;padding-left: 5px\" src=\"https://raw.github.com/popcodelab/svg-icons/main/mysql.svg?sanitize=true\" alt=\"MySQL 8\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr style=\"border: none\"\u003e \n  \u003ctd style=\"border: none\"\u003eJava 17\u003c/td\u003e\n  \u003ctd style=\"border: none\"\u003e\u003cimg style=\"height: 45px;width: 45px;padding-left: 5px\" src=\"https://raw.github.com/popcodelab/svg-icons/main/java.svg?sanitize=true\" alt=\"Java 17\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr style=\"border: none\"\u003e \n  \u003ctd style=\"border: none\"\u003eSpring Boot 3.3.0\u003c/td\u003e\n  \u003ctd style=\"border: none\"\u003e\u003cimg style=\"height: 40px;width: 40px;padding-left: 5px\" src=\"https://raw.github.com/popcodelab/svg-icons/main/spring.svg?sanitize=true\" alt=\"Spring Boot 3.3.0\"\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n\n\n\n\n## Compodoc\n\nTo generate the documentation, if compodoc is not installed, follow the instructions bellow :\n\ninstal compodoc : `npm install @compodoc/compodoc`\n\nOnce installed :\n- To generate the documentation run the command : `npm run compodoc`\n- To Serve it on http://127.0.0.1:8080  : `npm run compodoc:serve`\n\n![Compodoc](./front/src/assets/screenshots/compodoc.png)\n\n\n## Authors\n\nPOP's Code Lab\n\n## Screenshots\n \n\u003cimg src=\"./front/src/assets/screenshots/welcome.png\" width=\"350\" alt=\"Welcome\"\u003e\n\u003cimg src=\"./front/src/assets/screenshots/register.png\" width=\"350\" alt=\"Register\"\u003e\n\u003cimg src=\"./front/src/assets/screenshots/login.png\" width=\"350\" alt=\"Login\"\u003e\n\u003cimg src=\"./front/src/assets/screenshots/topics.png\" width=\"350\" alt=\"Topics\"\u003e\n\u003cimg src=\"./front/src/assets/screenshots/write_post.png\" width=\"350\" alt=\"Write a post\"\u003e\n\u003cimg src=\"./front/src/assets/screenshots/posts_1.png\" width=\"350\" alt=\"List of posts\"\u003e\n\u003cimg src=\"./front/src/assets/screenshots/me.png\" width=\"350\" alt=\"Profile\"\u003e\n\u003cimg src=\"./front/src/assets/screenshots/responsive.png\" width=\"350\" alt=\"Responsive\"\u003e\n\n---\nFront-end :  \n![Static Badge](https://img.shields.io/badge/Angular-17.3.8-red)\n\n\nBack-end :  \n![Static Badge](https://img.shields.io/badge/Java-17.0.10-orange)\n![Static Badge](https://img.shields.io/badge/Spring_Boot-3.3.0-green)\n![Static Badge](https://img.shields.io/badge/Maven-4.0.0-purple)\n\n\n![Swagger](https://img.shields.io/badge/-Swagger-%23Clojure?style=for-the-badge\u0026logo=swagger\u0026logoColor=white)\n\n\u003cbr\u003e\n\u003chr\u003e\n\n \u003cdiv align=\"center\"\u003e\n\n [![forthebadge](https://forthebadge.com/images/badges/build-with-spring-boot.svg)](https://forthebadge.com)\n [![forthebadge](https://forthebadge.com/images/badges/uses-git.svg)](https://forthebadge.com)\n [![forthebadge](https://forthebadge.com/images/badges/made-with-typescript.svg)](https://forthebadge.com)\n [![forthebadge](https://forthebadge.com/images/badges/made-with-java.svg)](https://forthebadge.com)\n![MySQL](https://img.shields.io/badge/mysql-4479A1.svg?style=for-the-badge\u0026logo=mysql\u0026logoColor=white)\n\u003c/div\u003e\n\u003chr/\u003e\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpopcodelab%2Fmdd_mvp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpopcodelab%2Fmdd_mvp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpopcodelab%2Fmdd_mvp/lists"}