Skip to content

About

A full-stack application developed as part of the IPDV Developer Challenge, featuring a modern architecture with a Vue.js frontend, Express.js backend, and PostgreSQL database. The project demonstrates authentication with JWT, user and role management, CRUD operations, and relational database modeling.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

44 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IPDV Developer Challenge

A full-stack application developed as part of the IPDV Developer Challenge, featuring a modern architecture with a Vue.js frontend, Express.js backend, and PostgreSQL database. The project demonstrates authentication with JWT, user and role management, CRUD operations, and relational database modeling.

The solution follows a clean separation between the client, server, and database layers, simulating a real-world application architecture.

🏗️ Project Structure

The project is organized into three independent packages:

├── client    # Vue.js + Vuetify Frontend
├── server    # Express.js REST API
└── data      # PostgreSQL Database Scripts

🗄️ Database Setup

Create the database using the provided SQL scripts or through pgAdmin.

Demo Credentials

Passwords are stored encrypted.

Email Password
maria.oliveira@email.com senha123

Recommended Database Configuration

OWNER = postgres
ENCODING = UTF8
LC_COLLATE = pt_BR.UTF-8
LC_CTYPE = pt_BR.UTF-8
LOCALE_PROVIDER = libc
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = false

Execute the SQL Scripts

Run the scripts in the following order:

1_CreateDatabase.sql
2_CreateTable.sql
3_CreateFunctions.sql
4_CreateViews.sql

💻 Frontend Installation

Navigate to the client folder:

cd client

Install dependencies:

npm install

Run the application:

npm run dev

⚙️ Backend Installation

Navigate to the server folder:

cd server

Install dependencies:

npm install

Run the API:

npm run dev

🚀 Features

🔐 Authentication

  • JWT authentication
  • Session expiration after 60 minutes
  • Secure login
  • Logout functionality
  • Protected routes

👥 User Management

  • Create users
  • Update users
  • Soft delete (Deactivate users)
  • User listing
  • Relationship between users and roles

🏢 Role Management

  • Create roles
  • Update roles
  • Associate users with roles

🗃️ Database

  • PostgreSQL relational database
  • Views
  • Functions
  • Structured SQL scripts
  • Normalized schema

🛠️ Technology Stack

Frontend

  • Vue.js
  • Vuetify
  • JavaScript

Backend

  • Node.js
  • Express.js
  • JWT Authentication

Database

  • PostgreSQL

📋 Challenge Requirements

The application was built to satisfy the following requirements:

  • User registration
  • Role registration
  • User-role association
  • User listing with assigned roles
  • Update users and roles
  • Deactivate users
  • JWT authentication with 60-minute expiration
  • Logout functionality
  • Independent frontend and backend applications

👨‍💻 Author

  • Gabriel Campos

About

A full-stack application developed as part of the IPDV Developer Challenge, featuring a modern architecture with a Vue.js frontend, Express.js backend, and PostgreSQL database. The project demonstrates authentication with JWT, user and role management, CRUD operations, and relational database modeling.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages