No description
  • TypeScript 54.1%
  • Python 26%
  • HTML 17.9%
  • CSS 1.2%
  • JavaScript 0.8%
Find a file
2026-03-10 09:30:41 +01:00
client Narudžbenice i ugovori 2026-03-10 09:30:25 +01:00
server/server Narudžbenice i ugovori 2026-03-10 09:30:41 +01:00
.gitignore Server commit 2025-08-25 14:41:29 +02:00
README.md Dodana opcija za vozače i filtriranje po datumu na listi svih ponuda 2025-11-04 13:21:49 +01:00

Ponude

Full-stack web aplikacija za ponude, Flask backend i Angular frontend.

Tech Stack

Backend:

  • Flask (Python 3.13.6)
  • MySQL database
  • JWT authentication

Frontend:

  • Angular 20

Instalacija

The easiest way to run the application is using Docker, which packages both the Flask backend and Angular frontend in a single container.

  1. Clone the repository:
git clone <repository-url>
cd Ponude
  1. Create production environment file:
cp .env.production.example .env.production
  1. Edit .env.production with your configuration:
# Flask Configuration
FLASK_ENV=production

# JWT Configuration - Generate a secure random key
JWT_SECRET_KEY=your_secure_jwt_secret_key_here

# MySQL Database Configuration
MYSQL_HOST=mysql
MYSQL_PORT=3306
MYSQL_USER=ponude_user
MYSQL_PASSWORD=your_secure_password_here
MYSQL_DB=ponude_db
MYSQL_ROOT_PASSWORD=your_mysql_root_password_here

# Business Logic Configuration
ODJEL_ID=3,13
DOKUMENT_ID=64
PODUZECE_ID=1
  1. Deploy using the deployment script:

Linux/Mac:

chmod +x deploy.sh
./deploy.sh

Windows:

deploy.bat

Or manually with Docker Compose:

docker-compose up -d

The application will be available at http://localhost:5000

Option 2: Manual Development Setup

Backend Setup

Clone the repository:

git clone <repository-url>
cd Ponude

Create a virtual environment:

python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

Install Python dependencies:

pip install -r requirements.txt

Create .env file in the server/ directory with the following variables:

# Flask Configuration
FLASK_ENV=development

# JWT Configuration
JWT_SECRET_KEY=your_jwt_secret_key_here

# MySQL Database Configuration
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=your_mysql_username
MYSQL_PASSWORD=your_mysql_password
MYSQL_DB=your_database_name

# Business Logic Configuration
ODJEL_ID=3,13 # ID-evi odjela na kojima se radi
DOKUMENT_ID=64 # ID ponuda u tablici dokument
PODUZECE_ID=1 # ID partnera poduzeca

Start the Flask server:

python app.py

The backend will be available at http://localhost:5000

Frontend Setup

Navigate to the client directory:

cd client

Install Node.js dependencies:

npm install

Configure the frontend by updating src/app/config/global-config.ts:

export const GLOBAL_CONFIG = {
  // API Configuration
  API_BASE_URL: '/api',
  
  // Business Logic Configuration
  MP_VRSTA: [2, 6],      // Vrste odjela gdje je maloprodaja
  VIRMAN: 3,             // Virman ID u tablici sredstvo_placanja
  DOKUMENT_ID: 64,       // ID ponuda u tablici dokument
} as const;

Create a proxy configuration file proxy.conf.json in the client directory:

{
  "/api/tarifna/*": {
    "target": "http://localhost:5000",
    "secure": false,
    "changeOrigin": true,
    "logLevel": "debug"
  },
  "/api/ponuda/*": {
    "target": "http://localhost:5000",
    "secure": false,
    "changeOrigin": true,
    "logLevel": "debug"
  },
  "/api/sifarnik/*": {
    "target": "http://localhost:5000",
    "secure": false,
    "changeOrigin": true,
    "logLevel": "debug"
  },
  "/api/*": {
    "target": "http://localhost:5000",
    "secure": false,
    "changeOrigin": true,
    "logLevel": "debug"
  }
}

Start the Angular development server:

ng serve

The frontend will be available at http://localhost:4200

Configuration Details

Backend Environment Variables (.env)

Variable Description Example
FLASK_ENV Flask environment mode development or production
JWT_SECRET_KEY Secret key for JWT token signing Random 64-character string
MYSQL_HOST MySQL server hostname localhost
MYSQL_PORT MySQL server port 3306
MYSQL_USER MySQL username root
MYSQL_PASSWORD MySQL password Your MySQL password
MYSQL_DB Database name gradexport_eur
ODJEL_ID ID-evi odjela na kojima se radi 3,13
DOKUMENT_ID ID ponuda u tablici dokument 64
PODUZECE_ID ID partnera poduzeca 1

Frontend Configuration (global-config.ts)

Property Description Default Value
API_BASE_URL Backend API base URL /api
MP_VRSTA Vrsta odjela na kojima je maloprodaja [2, 6]
VIRMAN Virman ID u tablici sredstvo_placanja 3
DOKUMENT_ID ID ponuda u tablici dokument 64