Introduction
The Small Sticker Client is a web-based e-commerce platform designed for programmers to purchase stickers and other programming-related merchandise. Built using modern web technologies, this project showcases a blend of static site generation and dynamic client-side functionality to create a seamless shopping experience for developers.
Main Features
- Static site generation using Gatsby V2 for optimal performance
- Integration with Strapi headless CMS for content management
- Emotion for styled components and efficient CSS-in-JS
- GitHub OAuth for user authentication
- Dynamic order search dashboard
- WeChat Pay integration for payments
- Responsive design for various devices
- Client-only routes for protected content
Installation Steps
Clone the repository:
git clone https://github.com/smallsticker/smallsticker-client.git
Navigate to the project directory:
cd smallsticker-client
Install dependencies:
yarn install
Set up environment variables for Strapi and GitHub OAuth
Start the development server:
gatsby develop
Usage Instructions
Browse the store at the root URL to view available products
Add items to cart and proceed to checkout
Authenticate using GitHub OAuth during the checkout process
Complete the payment using the available payment methods
For order lookup, navigate to the order search dashboard and log in with your GitHub account
Administrators can access the Strapi CMS to manage products and content
Important Notes
The store uses Strapi as its backend CMS. Ensure the Strapi instance is properly configured and accessible.
GitHub OAuth is used for authentication. Make sure to set up the OAuth application in GitHub and configure the credentials correctly.
The project uses the gatsby-source-strapi plugin for static data fetching. Familiarize yourself with its configuration for optimal use.
WeChat Pay integration may have cross-browser compatibility issues, particularly with Safari-based browsers. Refer to the project issues for updates and potential fixes.
The order search functionality is implemented as a client-only route for security. Ensure proper access controls are in place.
For local development, you may encounter authentication issues with Safari-based browsers due to local storage problems. Use an incognito window or a different browser for testing.
Keep the dependencies updated regularly to ensure security and access to the latest features.
The project uses Emotion for styling. Familiarize yourself with Emotion's API for efficient styling management.
Continuous Integration is set up with CircleCI. Make sure to configure the CI environment properly when forking or cloning the project.
For any issues or feature requests, refer to the project's GitHub Issues section and consider contributing to the open-source project.