Skip to content

MarcioPerusin/web_project_api_full

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

🌍 Tripleten web_project_api_full

Preview do projeto

🎯 Clique na imagem acima para acessar o projeto publicado
💡 Click on the image above to access the published project

🇧🇷 Português | 🇺🇸 English


📑 Table of Contents


Portuguese

🇧🇷 Português

🌍 Around — Full Stack Application

Aplicação Full Stack desenvolvida com React + Node.js + Express + MongoDB, com autenticação via JWT, deploy em VPS Linux com Nginx, PM2 e HTTPS.

O projeto simula uma rede social de compartilhamento de cartões (cards), permitindo cadastro, login, edição de perfil, criação e interação com conteúdos.


🚀 Aplicação em Produção

🌐 Frontend: https://przn.jumpingcrab.com

🔗 Backend API: https://api.przn.jumpingcrab.com

Voltar ao topo


🏗️ Arquitetura do Projeto

Frontend (React)
        ↓
HTTPS (Nginx Reverse Proxy)
        ↓
Backend (Node.js + Express)
        ↓
MongoDB Database

Voltar ao topo


🎥 Demonstração em Vídeo

🔗 Assista ao vídeo demonstrando a aplicação completa (5 minutos):

O vídeo apresenta:

  • Deploy em produção (Frontend + Backend)
  • Fluxo completo de autenticação
  • Rotas protegidas com JWT
  • Edição de perfil
  • CRUD de cartões
  • Demonstração técnica via Postman

Voltar ao topo


📸 Demonstração Visual

🏗️ Arquitetura do Sistema

Arquitetura


🔐 Tela de Login / Registro

Login


🖥️ Tela Principal (Usuário Logado)

Perfil editado Perfil Editado

Perfil padrão Perfil Padrão


🛡️ Rota Protegida com JWT (Postman)

JWT Header

Voltar ao topo


🛠️ Tecnologias usadas

🔹 Frontend

  • React
  • Context API
  • React Router
  • Proteção de rotas
  • JWT armazenado no localStorage

🔹 Backend

  • Node.js
  • Express
  • MongoDB + Mongoose
  • Autenticação JWT
  • Middleware de autorização
  • Tratamento centralizado de erros

🔹 Infraestrutura

  • VPS Linux (Ubuntu)
  • Nginx (Reverse Proxy)
  • PM2 (Process Manager)
  • SSL (HTTPS)
  • Variáveis de ambiente

Voltar ao topo


🔐 Funcionalidades

👤 Autenticação

  • Cadastro de usuário
  • Login com geração de JWT
  • Rotas protegidas
  • Logout
  • Token com expiração

👤 Perfil

  • Atualização de nome e descrição
  • Atualização de avatar

🖼️ Cartões (Cards)

  • Criar cartão
  • Listar cartões
  • Curtir / descurtir
  • Remover cartão (proprietário)

Voltar ao topo


🛠️ Tecnologias Utilizadas

Frontend

  • React
  • React Router DOM
  • JavaScript (ES6+)
  • HTML5
  • CSS3
  • Vite

Backend

  • Node.js
  • Express
  • MongoDB
  • Mongoose
  • jsonwebtoken
  • bcryptjs
  • dotenv

Voltar ao topo


📁 Estrutura do Repositório

project-root/
 ├── backend/
 ├── frontend/
 └── README.md

Voltar ao topo


🔄 Fluxo de Autenticação

  1. Usuário realiza login
  2. Backend valida credenciais
  3. Backend gera JWT
  4. Frontend armazena token
  5. Token enviado no header:
Authorization: Bearer <token>
  1. Middleware valida o token
  2. Acesso liberado às rotas protegidas

Voltar ao topo


🔐 Segurança Aplicada

  • Hash de senha com bcrypt
  • JWT com expiração
  • Middleware de autorização
  • Validação de dados com Mongoose
  • HTTPS com SSL
  • Variáveis protegidas via .env
  • Reverse proxy com Nginx

Voltar ao topo


💻 Como Executar Localmente

1️⃣ Backend

cd backend
npm install
npm run dev

2️⃣ Frontend

cd frontend
npm install
npm run dev

Voltar ao topo


👨‍💻 Autor

Marcio Perusin Desenvolvedor Full Stack

🔗 GitHub: https://github.com/Perozin
🔗 LinkedIn: https://www.linkedin.com/in/marcio-p-58162334



English

🇺🇸 English

🌍 Around — Production-Ready Full Stack Application

A production-ready Full Stack application built with React, Node.js, Express, and MongoDB, featuring secure authentication with JWT, reverse proxy configuration using Nginx, and deployment on a Linux VPS.

The project simulates a social platform where users can create, manage, and interact with cards (posts), including authentication, profile management, and protected routes.


🚀 Live Application

🌐 Frontend: https://przn.jumpingcrab.com

🔗 Backend API: https://api.przn.jumpingcrab.com

Back to top


🏗️ System Architecture

React Frontend
        ↓
HTTPS (Nginx Reverse Proxy)
        ↓
Node.js + Express API
        ↓
MongoDB Database

Back to top


🎥 Video Demonstration

🔗 Watch the full 5-minute technical walkthrough:

The video demonstrates:

  • Production deployment
  • Authentication flow
  • JWT protected routes
  • Profile editing
  • Full CRUD operations
  • Technical validation via Postman

Back to top


📸 Visual Demonstration

🏗️ System Architecture

System Architecture


🔐 Login / Registration Screen

Login


🖥️ Main Dashboard (Authenticated User)

Edited profile Edited Profile

Default profile Default Profile


🛡️ Protected Route (JWT Validation)

JWT Header

Back to top


🔐 Key Features

Authentication

  • User registration (signup)
  • User login (signin)
  • JWT generation and validation
  • Protected routes
  • Token expiration handling
  • Secure logout

User Profile

  • Update name and description
  • Update avatar
  • Dynamic data loading after authentication

Cards Management

  • Create new cards
  • Fetch all cards
  • Like / Unlike cards
  • Delete cards (owner only)

Back to top


🛠️ Technologies Used

Frontend

  • React
  • React Router DOM
  • Context API
  • JavaScript (ES6+)
  • HTML5
  • CSS3
  • Vite

Backend

  • Node.js
  • Express
  • MongoDB
  • Mongoose
  • JSON Web Token (jsonwebtoken)
  • bcryptjs
  • dotenv

Infrastructure

  • Linux VPS (Ubuntu)
  • Nginx (Reverse Proxy)
  • PM2 (Process Manager)
  • SSL (HTTPS)
  • Environment variables configuration

Back to top


🔄 Authentication Flow

1. User submits login credentials 2. Backend validates credentials 3. Backend generates a JWT 4. Frontend stores the token 5. Token is sent in request headers:

Authorization: Bearer <token>

6. Authorization middleware validates the token 7. Access to protected routes is granted

Back to top


🔐 Security Implementation

  • Password hashing with bcrypt
  • JWT with expiration
  • Authorization middleware
  • Centralized error handling
  • Data validation with Mongoose
  • HTTPS encryption
  • Environment variables protection
  • Reverse proxy security layer (Nginx)

Back to top


📁 Repository Structure

project-root/
 ├── backend/
 ├── frontend/
 └── README.md

Back to top


💻 Running Locally

Backend

cd backend
npm install
npm run dev

Frontend

cd frontend
npm install
npm run dev

Back to top


🎯 Project Highlights

  • Production deployment (not just local development)
  • Secure authentication architecture
  • Full CRUD operations
  • Clean code organization
  • Environment-based configuration
  • Real infrastructure setup

Back to top


👨‍💻 Author

Marcio Perusin Full Stack Developer

GitHub: https://github.com/Perozin
LinkedIn: https://www.linkedin.com/in/marcio-p-58162334

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors