imkFinal/frontend/documentation.md

5.3 KiB

IMK Platform Documentation

Table of Contents

  1. Introduction
  2. Features
  3. Technical Stack
  4. Architecture
  5. User Flows
  6. API Documentation
  7. Security
  8. Deployment

Introduction

IMK Platform is a modern web application built to manage and share documents securely. The platform provides robust user management, document handling, and secure sharing capabilities.

Features

User Management

  • User registration and authentication
  • Role-based access control (Admin, User)
  • Password reset functionality
  • Email notifications for account activities
  • Profile management

Document Management

  • Document upload and storage
  • Document sharing between users
  • Document version control
  • Document metadata management
  • Secure document access control

Email Notifications

  • Welcome emails for new users
  • Password reset notifications
  • Document sharing notifications
  • Password change confirmations

Administrative Features

  • User management dashboard
  • Document oversight
  • System monitoring
  • Access control management

Technical Stack

Frontend

  • React.js with Vite
  • TypeScript for type safety
  • TailwindCSS for styling
  • Shadcn UI components
  • React Query for state management
  • React Router for navigation

Backend

  • NestJS framework
  • TypeScript
  • Prisma ORM
  • PostgreSQL database
  • Node.js runtime
  • JWT authentication
  • Nodemailer for email services

Architecture

Frontend Architecture

  • Component-based architecture
  • Responsive design
  • State management using React Query
  • Protected routes with authentication
  • Form validation and error handling

Backend Architecture

  • RESTful API design
  • Modular architecture with NestJS
  • Database abstraction with Prisma
  • Email service integration
  • JWT-based authentication
  • Role-based authorization

User Flows

Authentication Flow

  1. User Registration

    • User fills registration form
    • System validates input
    • Welcome email sent
    • User redirected to login
  2. Login Flow

    • User enters credentials
    • System validates credentials
    • JWT token issued
    • User redirected to dashboard
  3. Password Reset Flow

    • User requests password reset
    • System sends reset email
    • User clicks reset link
    • User sets new password
    • Confirmation email sent

Document Management Flow

  1. Document Upload

    • User selects document
    • System validates document
    • Document metadata captured
    • Document stored securely
  2. Document Sharing

    • User selects document to share
    • User selects recipient(s)
    • System sends notification
    • Access granted to recipient

API Documentation

Authentication Endpoints

  • POST /auth/register - User registration
  • POST /auth/login - User login
  • POST /auth/reset-password - Password reset request
  • POST /auth/change-password - Password change

User Endpoints

  • GET /users/profile - Get user profile
  • PUT /users/profile - Update user profile
  • GET /users - List users (admin only)
  • PUT /users/:id - Update user (admin only)

Document Endpoints

  • POST /documents - Upload document
  • GET /documents - List documents
  • GET /documents/:id - Get document details
  • PUT /documents/:id - Update document
  • DELETE /documents/:id - Delete document
  • POST /documents/:id/share - Share document

Security

Authentication Security

  • JWT token-based authentication
  • Password hashing with bcrypt
  • Rate limiting on auth endpoints
  • Session management
  • CSRF protection

Data Security

  • HTTPS encryption
  • Input validation
  • XSS protection
  • SQL injection prevention
  • File type validation

Access Control

  • Role-based access control
  • Document-level permissions
  • API endpoint protection
  • Resource isolation

Deployment

Frontend Deployment

  • Static site hosting
  • CDN integration
  • Environment configuration
  • Build optimization

Backend Deployment

  • Node.js runtime environment
  • Process management with PM2
  • Nginx reverse proxy
  • SSL/TLS configuration
  • Database backup system

Environment Variables

Frontend:

VITE_API_URL=https://api.example.com

Backend:

DATABASE_URL=postgresql://user:password@localhost:5432/dbname
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=user@example.com
SMTP_PASS=password
EMAIL_FROM=noreply@example.com
JWT_SECRET=your-secret-key

Getting Started

Development Setup

  1. Clone the repository
  2. Install dependencies:
    # Frontend
    cd frontend
    npm install
    
    # Backend
    cd backend
    npm install
    
  3. Set up environment variables
  4. Start development servers:
    # Frontend
    npm run dev
    
    # Backend
    npm run start:dev
    

Production Deployment

  1. Build applications:
    # Frontend
    npm run build
    
    # Backend
    npm run build
    
  2. Configure environment variables
  3. Start production servers:
    # Frontend
    serve -s dist
    
    # Backend
    npm run start:prod
    

Support and Maintenance

Monitoring

  • Application performance monitoring
  • Error tracking and logging
  • Database monitoring
  • Email service monitoring

Backup and Recovery

  • Database backup strategy
  • Document backup system
  • System configuration backup
  • Recovery procedures

Updates and Maintenance

  • Regular security updates
  • Dependency updates
  • Performance optimization
  • Feature updates