94 lines
2.1 KiB
Markdown
94 lines
2.1 KiB
Markdown
# Postaci - Swiss Postal Delivery Application
|
|
|
|
Postaci is a web application for managing postal deliveries in Switzerland, featuring OCR address scanning, address validation, and route optimization.
|
|
|
|
## Features
|
|
|
|
- OCR-based address scanning using Tesseract.js
|
|
- Swiss address validation with canton detection
|
|
- Route optimization for multiple delivery addresses
|
|
- Interactive map interface using Leaflet
|
|
- User authentication with NextAuth.js
|
|
- Prisma ORM for database operations
|
|
|
|
## Technology Stack
|
|
|
|
- **Frontend**: React, Next.js 15, TailwindCSS
|
|
- **Backend**: Next.js API routes, Express.js (validation service)
|
|
- **Database**: PostgreSQL with Prisma ORM
|
|
- **Authentication**: NextAuth.js
|
|
- **Maps**: Leaflet, React-Leaflet
|
|
- **OCR**: Tesseract.js
|
|
|
|
## Project Structure
|
|
|
|
- `app/` - Next.js application routes and components
|
|
- `components/` - Reusable React components
|
|
- `lib/` - Utility functions and API helpers
|
|
- `prisma/` - Database schema and migrations
|
|
- `providers/` - React context providers
|
|
- `public/` - Static assets
|
|
- `validation-service/` - Address validation microservice
|
|
|
|
## Setup & Development
|
|
|
|
### Prerequisites
|
|
|
|
- Node.js 18+ and npm
|
|
- PostgreSQL (for production)
|
|
|
|
### Installation
|
|
|
|
1. Clone the repository:
|
|
```bash
|
|
git clone https://gitea.oezdag.io/m3mo/POSTERAPP_V1.git
|
|
cd POSTERAPP_V1
|
|
```
|
|
|
|
2. Install dependencies:
|
|
```bash
|
|
npm install
|
|
cd validation-service && npm install
|
|
```
|
|
|
|
3. Configure environment variables:
|
|
```bash
|
|
cp .env.example .env.local
|
|
```
|
|
|
|
4. Start the development environment:
|
|
```bash
|
|
./start-dev.sh
|
|
```
|
|
|
|
This will start both the Next.js application and the address validation service.
|
|
|
|
## Database Setup
|
|
|
|
1. Initialize Prisma:
|
|
```bash
|
|
npx prisma generate
|
|
npx prisma db push
|
|
```
|
|
|
|
## Testing
|
|
|
|
The address validation service can be tested independently:
|
|
|
|
```bash
|
|
cd validation-service
|
|
npm run dev
|
|
```
|
|
|
|
Then use curl to test the endpoints:
|
|
|
|
```bash
|
|
# Validate an address
|
|
curl -X POST http://localhost:8000/api/validate-address \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"address": "Luzernstrasse 27, 4552 Derendingen"}'
|
|
```
|
|
|
|
## License
|
|
|
|
This project is proprietary and confidential. |