Spaces:
Running
Running
# Overview | |
Shoposphere is a comprehensive multi-seller e-commerce marketplace built with modern web technologies. The platform connects buyers with verified sellers, featuring a full-stack architecture with React frontend, Express.js backend, and PostgreSQL database. The application supports customer registration and shopping, seller account management, product catalog management, order processing, and administrative functions. | |
# User Preferences | |
Preferred communication style: Simple, everyday language. | |
# System Architecture | |
## Frontend Architecture | |
- **Framework**: React 18 with TypeScript for type safety and modern development | |
- **Routing**: Wouter for lightweight client-side routing | |
- **UI Components**: Shadcn/ui component library with Radix UI primitives for accessibility | |
- **Styling**: Tailwind CSS with custom CSS variables for theming | |
- **State Management**: | |
- TanStack Query for server state management and caching | |
- React Context for authentication and cart state | |
- React Hook Form with Zod validation for form handling | |
- **Build Tool**: Vite for fast development and optimized production builds | |
## Backend Architecture | |
- **Framework**: Express.js with TypeScript for API development | |
- **Database**: PostgreSQL with connection pooling via Neon serverless | |
- **ORM**: Drizzle ORM for type-safe database operations and migrations | |
- **Authentication**: JWT-based authentication with role-based access control (users, sellers, admin) | |
- **File Uploads**: Multer middleware for image upload handling | |
- **API Design**: RESTful API with consistent error handling and logging | |
## Database Design | |
- **Users Table**: Customer account information with complete address details | |
- **Sellers Table**: Admin-created seller accounts with minimal profile data | |
- **Categories Table**: Product categories with optional icons | |
- **Stores Table**: Seller store information with banner and profile images | |
- **Products Table**: Product catalog with pricing, inventory, and image support | |
- **Orders/OrderItems Tables**: Order management with line item details | |
- **CartItems Table**: Shopping cart persistence for authenticated users | |
## Authentication & Authorization | |
- **Multi-tier Access**: Separate authentication flows for customers, sellers, and admin | |
- **JWT Tokens**: Stateless authentication with role-based permissions | |
- **Protected Routes**: Middleware-based route protection on both frontend and backend | |
- **Session Management**: Client-side token storage with automatic logout | |
## File Management | |
- **Upload Strategy**: Local file storage with Multer middleware | |
- **Image Processing**: Support for multiple product images and store branding | |
- **Static Serving**: Express static middleware for uploaded file delivery | |
# External Dependencies | |
## Database Services | |
- **Neon Database**: Serverless PostgreSQL hosting with connection pooling | |
- **Drizzle Kit**: Database migration and schema management tools | |
## UI/UX Libraries | |
- **Radix UI**: Accessible component primitives for complex UI elements | |
- **Lucide React**: Icon library for consistent iconography | |
- **Embla Carousel**: Touch-friendly carousel components | |
- **React Day Picker**: Calendar and date selection components | |
## Development Tools | |
- **TanStack Query**: Server state synchronization and caching | |
- **React Hook Form**: Form validation and state management | |
- **Zod**: Runtime type validation and schema definition | |
- **Class Variance Authority**: Type-safe component variant management | |
## Build & Development | |
- **Vite**: Fast build tool with HMR and optimized bundling | |
- **TypeScript**: Static typing for improved developer experience | |
- **ESBuild**: Fast JavaScript bundler for production builds | |
- **PostCSS**: CSS processing with Tailwind CSS integration | |
## Authentication & Security | |
- **bcrypt**: Password hashing for secure user authentication | |
- **jsonwebtoken**: JWT token generation and verification | |
- **connect-pg-simple**: PostgreSQL session store (configured but using JWT) | |
## Utility Libraries | |
- **date-fns**: Date manipulation and formatting | |
- **clsx/tailwind-merge**: Conditional CSS class composition | |
- **nanoid**: Unique ID generation for various entities |