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