A modern, scalable e-commerce platform built with cutting-edge technologies and following industry best practices. Sky S combines a robust NestJS backend with a sleek Next.js frontend to deliver an exceptional shopping experience.
- π Complete E-commerce Solution - Product catalog, shopping cart, order management
- π Secure Authentication - JWT-based authentication with role-based access control
- π³ Payment Integration - Secure payment processing
- π± Responsive Design - Mobile-first approach with Tailwind CSS
- π¨ Modern UI - Beautiful components with shadcn/ui
- π High Performance - Optimized for speed and scalability
- π Advanced Search - Smart product search and filtering
- π Admin Dashboard - Comprehensive admin panel for store management
Sky S follows a microservices-inspired architecture with clear separation of concerns:
- SOLID Principles - Clean, maintainable, and testable code
- Modular Design - Feature-based modules for scalability
- Type Safety - Full TypeScript implementation
- API Documentation - Auto-generated Swagger documentation
- Database - PostgreSQL with Prisma ORM
- Authentication - JWT tokens with refresh token rotation
- Validation - Input validation and sanitization
- Error Handling - Centralized error handling and logging
- Server-Side Rendering - SEO-optimized pages
- State Management - Zustand for efficient state handling
- Component Library - shadcn/ui for consistent design
- Styling - Tailwind CSS for utility-first styling
- Type Safety - Full TypeScript integration
- Performance - Code splitting and optimization
- Framework: NestJS
- Language: TypeScript
- Database: PostgreSQL
- ORM: Prisma
- Authentication: JWT
- Containerization: Docker
- Validation: class-validator
- Documentation: Swagger/OpenAPI
- Framework: Next.js 14
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: shadcn/ui
- State Management: Zustand
- Forms: React Hook Form
- HTTP Client: Axios/Fetch
- Containerization: Docker & Docker Compose
- Database: PostgreSQL
- Code Quality: ESLint, Prettier
- Package Manager: npm/yarn
- Version Control: Git
- Node.js 18+
- Docker & Docker Compose
- Git
-
Clone the repository
git clone https://github.com/redaezziani/sky-s.git cd sky-s -
Backend Setup
cd backend npm install # Copy environment variables cp .env.example .env # Start database with Docker docker-compose up -d postgres # Run Prisma migrations npx prisma migrate dev npx prisma generate # Seed the database (optional) npx prisma db seed # Start the backend server npm run start:dev
-
Frontend Setup
cd ../frontend npm install # Copy environment variables cp .env.example .env.local # Start the frontend server npm run dev
-
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:3001
- API Documentation: http://localhost:3001/api
Run the entire application with Docker Compose:
# Build and start all services
docker-compose up --build
# Run in detached mode
docker-compose up -dsky-s/
βββ backend/ # NestJS Backend
β βββ src/
β β βββ auth/ # Authentication module
β β βββ users/ # User management
β β βββ products/ # Product catalog
β β βββ orders/ # Order management
β β βββ payments/ # Payment processing
β β βββ common/ # Shared utilities
β βββ prisma/ # Database schema & migrations
β βββ docker/ # Docker configurations
βββ frontend/ # Next.js Frontend
β βββ src/
β β βββ app/ # Next.js app directory
β β βββ components/ # React components
β β βββ lib/ # Utilities & configurations
β β βββ hooks/ # Custom React hooks
β β βββ store/ # Zustand stores
βββ docker-compose.yml # Docker services
DATABASE_URL="postgresql://username:password@localhost:5432/skystore"
JWT_SECRET="your-super-secure-jwt-secret"
JWT_EXPIRES_IN="15m"
REFRESH_TOKEN_SECRET="your-refresh-token-secret"
REFRESH_TOKEN_EXPIRES_IN="7d"
PORT=3001NEXT_PUBLIC_API_URL=http://localhost:3001
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=y
89D1
our-stripe-keycd backend
# Unit tests
npm run test
# E2E tests
npm run test:e2e
# Test coverage
npm run test:covcd frontend
# Run tests
npm run test
# Run tests in watch mode
npm run test:watchThe API documentation is automatically generated using Swagger and available at:
- Development: http://localhost:3001/api
- Production: https://your-domain.com/api
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- NestJS - A progressive Node.js framework
- Next.js - The React framework for production
- Prisma - Next-generation ORM
- shadcn/ui - Beautifully designed components
- Tailwind CSS - A utility-first CSS framework
For support, email support@sky-s.com or join our Slack channel.
Made with β€οΈ by the Sky S Team