A modern, professional procurement management system built with Vue 3, TypeScript, and blockchain technology. This application provides a comprehensive solution for managing procurement requests, offers, and transactions with enhanced security and transparency through blockchain integration.
- User Authentication & Authorization - Secure login/register with role-based access
- Procurement Request Management - Create, view, and manage procurement requests
- Offer Management - Submit and manage offers for procurement requests
- Transaction Tracking - Complete transaction lifecycle management
- Blockchain Integration - Transparent and secure transaction recording
- Real-time Notifications - Stay updated with system notifications
- Modern Vue 3 Architecture - Composition API with TypeScript
- Professional UI/UX - Clean, responsive design with Tailwind CSS
- Modular Component System - Reusable, maintainable components
- Comprehensive State Management - Pinia stores with proper error handling
- Type Safety - Full TypeScript implementation
- API Service Layer - Organized HTTP services with interceptors
- Form Validation - Client-side validation with custom rules
- Error Handling - Comprehensive error management and user feedback
- Vue 3 - Progressive JavaScript framework
- TypeScript - Type-safe JavaScript
- Vite - Fast build tool and dev server
- Tailwind CSS - Utility-first CSS framework
- Pinia - State management for Vue
- Vue Router - Official router for Vue.js
- Axios - HTTP client for API requests
- ESLint - Code linting
- Prettier - Code formatting
- Vue DevTools - Development debugging
src/
βββ components/ # Reusable Vue components
β βββ ui/ # Base UI components
β βββ dashboard/ # Dashboard-specific components
βββ config/ # Configuration files
βββ layouts/ # Layout components
βββ pages/ # Page components
βββ router/ # Vue Router configuration
βββ services/ # API service layer
βββ stores/ # Pinia state management
βββ types/ # TypeScript type definitions
βββ utils/ # Utility functions
βββ views/ # Additional view components
- Node.js (v16 or higher)
- npm or yarn package manager
-
Clone the repository
git clone <repository-url> cd procurement-frontend-cursor
-
Install dependencies
npm install
-
Set up environment variables Create a
.envfile in the root directory:VITE_API_BASE_URL=http://localhost:5000/api VITE_APP_NAME=eProBlock VITE_APP_VERSION=1.0.0
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLintnpm run format- Format code with Prettiernpm run type-check- Run TypeScript type checking
The application follows a modular component architecture:
- Base Components (
src/components/ui/) - Reusable UI components - Feature Components (
src/components/dashboard/) - Feature-specific components - Page Components (
src/pages/) - Route-level components - Layout Components (
src/layouts/) - Layout wrapper components
Uses Pinia for state management with organized stores:
- Auth Store - User authentication and authorization
- Notification Store - System notifications management
Organized service layer with:
- HTTP Service - Centralized HTTP client with interceptors
- Feature Services - Domain-specific API services
- Error Handling - Comprehensive error management
Full TypeScript implementation with:
- Interface Definitions - Comprehensive type definitions
- API Types - Type-safe API responses
- Component Props - Typed component props and events
- Consistent Color Palette - Professional blue-based theme
- Typography - Clean, readable font hierarchy
- Spacing - Consistent spacing using Tailwind's scale
- Components - Reusable, accessible components
- Mobile-First - Responsive design for all screen sizes
- Touch-Friendly - Optimized for touch interactions
- Accessibility - WCAG compliant design
- JWT Authentication - Secure token-based authentication
- Route Guards - Protected routes with authentication checks
- Input Validation - Client and server-side validation
- Error Handling - Secure error messages without data leakage
- Create procurement requests
- View and manage requests
- Review and accept offers
- Track transaction status
- View blockchain records
- Browse available requests
- Submit competitive offers
- Track offer status
- Manage transaction history
- User management
- System monitoring
- Transaction oversight
- Blockchain verification
VITE_API_BASE_URL- Backend API URLVITE_APP_NAME- Application nameVITE_APP_VERSION- Application version
- Base URL configuration in
src/config/environment.ts - Request/response interceptors in
src/services/http.ts - Error handling and authentication
- Component testing with Vue Test Utils
- Service layer testing
- Utility function testing
- API integration testing
- User flow testing
- Cross-browser compatibility
npm run build- Static Hosting - Netlify, Vercel, GitHub Pages
- Docker - Containerized deployment
- CDN - Content delivery network integration
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
- Follow Vue 3 Composition API patterns
- Use TypeScript for type safety
- Follow ESLint and Prettier configurations
- Write meaningful commit messages
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the repository
- Contact the development team
- Check the documentation
- Initial release with core procurement features
- Vue 3 + TypeScript implementation
- Professional UI/UX design
- Blockchain integration
- Comprehensive error handling
Built with β€οΈ using Vue 3, TypeScript, and modern web technologies