- Node.js 18+ installed
- PostgreSQL database running
- Git for version control
- Create the database (if not already created):
CREATE DATABASE visual_historian;- Verify connection with your credentials:
- Host: localhost (or your PostgreSQL host)
- Database:
visual_historian - Username:
postgres - Password:
ala1nna
- Install dependencies:
npm install- Create environment file:
Create a
.env.localfile in your project root:
DATABASE_URL=postgresql://postgres:ala1nna@localhost:5432/visual_historian
NEXTAUTH_SECRET=your-super-secret-jwt-key-change-this-in-production
NEXTAUTH_URL=http://localhost:3000
NODE_ENV=development- Generate and push database schema:
# Generate migration files
npm run db:generate
# Push schema to database
npm run db:push- Seed the database with sample data:
npm run db:seed- Start the development server:
npm run devCreate these files in your project:
src/lib/db/index.ts- Database connectionsrc/lib/db/schema.ts- Database schemasrc/lib/db/seed.ts- Seed datasrc/lib/api-client.ts- API clientsrc/lib/data-sources/types.ts- TypeScript typessrc/lib/data-sources/manager.ts- Data source runtime managersrc/middleware/auth.ts- Authentication middlewaresrc/hooks/use-auth.tsx- Authentication hooksrc/hooks/use-toast.ts- Toast notification hook
src/app/(dashboard)/data-sources/page.tsx- Data sources managementsrc/app/(dashboard)/layout.tsx- Dashboard layout with authsrc/components/sidebar-nav.tsx- Navigation sidebar
drizzle.config.ts- Drizzle ORM configurationpackage.json- Dependencies.env.local- Environment variables
After seeding, you can login with:
- Email:
admin@example.com - Password:
admin123 - Permissions: Full access to all features
- Email:
engineer@example.com - Password:
engineer123 - Permissions: Create and manage data sources
- User Authentication - Login/logout with session management
- Data Source Management - Full CRUD operations
- Protocol Support - MODBUS, MQTT, NMEA, OPC, API, File sources
- Runtime Control - Start/stop data sources
- Dynamic Configuration - Protocol-specific configuration forms
- User Management - Admin can manage users and permissions
- Storage Configuration - AI-powered database recommendations
- Protocol Translation - AI-powered protocol parsing
- Dashboard - Real-time data visualization
- Data Sources - Configure and manage data ingestion points
- Storage - Database configuration and optimization
- Protocol Translator - Parse and translate unknown protocols
- Settings - User management and system configuration
The application creates these tables:
users- User accounts and rolessessions- Authentication sessionsdata_sources- Data source configurationsdata_points- Time-series data storagestorage_configs- Storage configurationsaudit_logs- System audit trailsystem_metrics- Performance monitoring
POST /api/auth/login- LoginPOST /api/auth/logout- LogoutGET /api/auth/me- Get current user
GET /api/data-sources- List all sourcesPOST /api/data-sources- Create new sourceGET /api/data-sources/[id]- Get specific sourcePUT /api/data-sources/[id]- Update sourceDELETE /api/data-sources/[id]- Delete sourcePOST /api/data-sources/[id]/start- Start sourcePOST /api/data-sources/[id]/stop- Stop source
- Verify PostgreSQL is running
- Check credentials in
.env.local - Ensure database
visual_historianexists - Test connection:
npm run db:studio
- Clear Next.js cache:
rm -rf .next - Reinstall dependencies:
rm -rf node_modules && npm install - Regenerate database: `npm run db:generate && npm run db