Files
2025-09-01 22:12:29 +02:00

3.2 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

This is a full-stack DZTPS (Users database system) application with a React frontend and Node.js/Express backend. The application appears to be a management system with CRUD operations for languages and other entities, using Firebase Authentication and MySQL database.

Project Structure

  • client/: React frontend application using Vite
  • server/: Node.js/Express backend API server
    • server/server/: Main server code
    • server/server/config/: Firebase service account configuration
    • server/.env: Database and environment configuration

Development Commands

Client (Frontend)

cd client
npm run dev        # Start development server
npm run build      # Build for production
npm run lint       # Run ESLint
npm run preview    # Preview production build

Server (Backend)

cd server
npm start          # Start server with nodemon (auto-reload)

Architecture Details

Frontend

  • Framework: React 19 with Vite
  • Styling: CSS modules
  • Build Tool: Vite with HMR support
  • Linting: ESLint with React plugins
  • Main Components: Located in client/src/ with App.jsx as entry point
  • Development Server: Runs on Vite's default port
  • API Endpoint: Configured to connect to http://localhost:3000

Backend

  • Framework: Express.js server
  • Authentication: Firebase Admin SDK
  • Database: MySQL with connection pooling
  • Environment: Configured via .env file
  • Port: 3000 (configurable via PORT env var)
  • CORS: Enabled for cross-origin requests
  • Main Server: server/server/index.js

Database Configuration

The MySQL database connection uses these environment variables:

  • MYSQL_HOST (default: localhost)
  • MYSQL_USER (default: root)
  • MYSQL_PASSWORD (default: root)
  • MYSQL_DATABASE (default: dztps)
  • MYSQL_PORT (default: 3306)

Firebase Setup

The server requires a serviceAccountKey.json file in server/server/config/ for Firebase Admin SDK initialization.

Development Workflow

  1. Starting Development:

    • Start MySQL database service
    • Start backend: cd server && npm start
    • Start frontend: cd client && npm run dev
  2. Making Changes:

    • Frontend changes auto-reload via Vite HMR
    • Backend changes auto-reload via nodemon
  3. Code Quality:

    • Run npm run lint in client directory for ESLint checks
    • The project uses modern ES6+ JavaScript/JSX

Key Dependencies

Client

  • React 19 with modern hooks
  • Vite for build tooling and development server
  • ESLint with React-specific rules

Server

  • Express.js for REST API
  • Firebase Admin SDK for authentication
  • MySQL driver for database operations
  • CORS middleware for cross-origin support
  • dotenv for environment configuration
  • nodemon for development auto-reload

Important Notes

  • The server expects Firebase service account credentials to be properly configured
  • Database connection parameters are environment-dependent
  • The frontend is configured to make API calls to localhost:3000
  • Both client and server have separate package.json files and dependency management