https://github.com/popcodelab/mdd_mvp
Minimized social network for developers - MVP (Minimum Viable Product)
https://github.com/popcodelab/mdd_mvp
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
Last synced: 28 days ago
JSON representation
Minimized social network for developers - MVP (Minimum Viable Product)
- Host: GitHub
- URL: https://github.com/popcodelab/mdd_mvp
- Owner: popcodelab
- Created: 2024-07-12T10:12:50.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-08-19T12:57:14.000Z (over 1 year ago)
- Last Synced: 2025-03-10T22:59:34.350Z (about 1 year ago)
- 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
- Language: Java
- Homepage:
- Size: 2.36 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# MDD
## Table of contents
- Description and goals
- App features
- Installation
- Database setup
- Run application
- Swagger (OpenAPI)
- Technologies
- Compodoc
- Screenshots
## Description and goal
MDD (Monde de Dév) is a social network project dedicated to developers:
Project developed as part of the development of a project for my master's degree.
This repository contains both the frontend and backend code for a Minimum Viable Product version.
## App features
### User management
- User registration
- Profile management
- User session
- Logout
### Topic management
- List all topics
- Subscribe to topic
- Unsubscribe from topic
### Post management
- View feed with sort by date or by title
- Create post
- Read post details
- Comment post
## Installation
### Clone the Project
Clone these repositories :
> git clone https://github.com/popcodelab/MDD_MVP
### Install Dependencies
#### Back-End:
> mvn clean install
#### Front-End:
> npm install
### Configuring the Back-End
Open the `application.yml` file located in the `back/src/main/resources` directory to Replace the properties with your parameters or using an `.env` file :
```properties
spring:
datasource:
url: jdbc:mysql://${APP_DB_HOST}:${APP_DB_PORT}/${APP_DB_NAME}
username: ${APP_DB_USER}
password: ${APP_DB_PASS}
...
application:
security:
jwt:
secret: ${JWT_SECRET_KEY}
expiration: ${JWT_EXPIRATION}
client:
url: ${CLIENT_URL}
server:
port: ${APP_BACKEND_PORT}
```
here is an example of `.env` file :
```properties
APP_DB_HOST=localhost
APP_DB_PORT=3306
APP_DB_NAME=database_name
APP_DB_USER=user_name
APP_DB_PASS=passowrd
JWT_SECRET_KEY=your_secret_key
JWT_EXPIRATION=86400000
CLIENT_URL=http://localhost:4300
APP_BACKEND_PORT=3005
```
## Database setup
Make sure that you have MySQL installed on your system.
1. Log into MySQL using the following command :
> mysql -u `` -p
2. Create the database :
> CREATE DATABASE ``;
3. Select the created database :
> USE ``;
### Build the database
Use the SQL script located in `ressources\sql\creates_db.sql` to create the schema :
> SOURCE ``;
## Run application
1. Frontend
- In your terminal, run the command below.
```bash
cd front
npm run start
```
The frontend will launch in your browser at `http://localhost:4400`
2. Backend
- In a separate terminal, run the command below.
```bash
cd back
mvn spring-boot:run
```
The backend server will launch at `http://localhost:3005`
---
## Swagger documentation
Once the backend started, the documentation can be browsed at : http://localhost:3005/swagger-ui/index.html
Use the authentication endpoint to get a JWT token to access to the protected routes.
## Technologies
HTML5

TypeScript 5.4.3

JavaScript

CSS3

Angular 17.3.8

Compodoc 1.1.25

Angular Material 17.3.0

MySQL 8

Java 17

Spring Boot 3.3.0

## Compodoc
To generate the documentation, if compodoc is not installed, follow the instructions bellow :
instal compodoc : `npm install @compodoc/compodoc`
Once installed :
- To generate the documentation run the command : `npm run compodoc`
- To Serve it on http://127.0.0.1:8080 : `npm run compodoc:serve`

## Authors
POP's Code Lab
## Screenshots

---
Front-end :

Back-end :




[](https://forthebadge.com)
[](https://forthebadge.com)
[](https://forthebadge.com)
[](https://forthebadge.com)
