A modern, full-stack e-commerce platform specialized in premium anime character figures and collectibles
APex Store is a full-stack e-commerce platform designed specifically for anime enthusiasts and collectors. Built with modern web technologies and cloud infrastructure, it provides a seamless shopping experience for customers looking to purchase premium anime character figures from popular series including Dragon Ball, Naruto, and One Piece. The platform features secure payment processing, user authentication, shopping cart management, and an intuitive admin dashboard for inventory management.
- Framework: ASP.NET Core 9.0 Web API
- Language: C# 12
- CLI Tool: .NET CLI for project management
- Database: Azure SQL Server with Entity Framework Core
- ORM: Entity Framework Core 9.0 (Code-First approach)
- Authentication: ASP.NET Core Identity with cookie-based authentication
- Authorization: Role-based access control (Member, Admin)
- API Documentation: Swagger UI with OpenAPI specification
- Payment Processing: Stripe API integration
- Image Storage: Cloudinary for product image management
- Deployment: Azure App Service
- Framework: React 18 with TypeScript
- Build Tool: Vite 5.0 for fast development and optimized builds
- UI Framework: Material-UI (MUI) with Material Design
- State Management: Redux Toolkit (RTK) with slice pattern
- API Client: RTK Query for efficient data fetching and caching
- Routing: React Router v7
- Form Handling: React Hook Form with Zod validation
- Styling: CSS-in-JS with emotion/styled
- Payment UI: Stripe Elements for secure checkout
- Hosting: Azure App Service (Backend + Frontend)
- Database: Azure SQL Server Database
- Image CDN: Cloudinary for product images
- Payment Gateway: Stripe
- IDE: Visual Studio Code
- Package Manager: npm
- Version Control: Git
- Code Quality: ESLint, Prettier
- API Testing: Swagger UI
- Database Tools: Azure Data Studio, SQL Server Management Studio
- Node.js (v18 or higher)
- .NET 9 SDK
- SQL Server (LocalDB, Express, or Azure SQL Server)
- Azure Account (for cloud deployment)
- Stripe Account (for payment processing)
- Cloudinary Account (for image management)
- Visual Studio Code
- Git
- Clone the repository
git clone https://github.com/yourusername/apex-store.git
cd apex-store- Setup Backend (API)
cd API
dotnet restore
dotnet ef database update
dotnet run- Setup Frontend (Client)
cd client
npm install
npm run dev- Configure Environment Variables
Create appsettings.Development.json in API folder:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=ApexStore;Trusted_Connection=true"
},
"Cloudinary": {
"CloudName": "your_cloud_name",
"ApiKey": "your_api_key",
"ApiSecret": "your_api_secret"
},
"Stripe": {
"PublishableKey": "pk_test_your_publishable_key",
"SecretKey": "sk_test_your_secret_key",
"WebhookSecret": "whsec_your_webhook_secret"
},
"JwtSettings": {
"TokenKey": "your-super-secret-key-here",
"Issuer": "APexStore",
"Audience": "APexStore"
}
}Create .env.local in client folder:
VITE_API_URL=https://localhost:5001
VITE_STRIPE_PUBLISHABLE_KEY=pk_test_your_publishable_key- Create and seed the database
cd API
dotnet ef database updateThe database will be automatically seeded with sample data on first run, including:
- 18 anime character figures (Dragon Ball, Naruto, One Piece)
- 2 test users ([email protected] and [email protected])
- Default password for test accounts:
Pa$$w0rd
- Reset database (if needed)
dotnet ef database drop
dotnet ef database update- Development:
https://localhost:5001/api - Production:
https://your-domain.com/api
APex Store uses JWT Bearer tokens for authentication.
Authorization: Bearer <your-jwt-token>Access interactive API documentation at:
- Development:
https://localhost:5001/swagger
- Run with hot reload
cd API
dotnet watch run- Create new migration
dotnet ef migrations add MigrationName
dotnet ef database update- Run tests
dotnet test- Start development server
cd client
npm run dev- Build for production
npm run build- Run tests
npm test- Lint code
npm run lint- API Testing: Use Swagger UI or Postman
- Database Management: SQL Server Management Studio or Azure Data Studio
- Code Formatting: Prettier and ESLint configured
- Git Hooks: Pre-commit hooks for code quality
- Build Backend
cd API
dotnet publish -c Release -o ./publish- Build Frontend
cd client
npm run buildUpdate production settings in appsettings.Production.json:
{
"ConnectionStrings": {
"DefaultConnection": "your-production-connection-string"
},
"Stripe": {
"PublishableKey": "pk_live_your_live_publishable_key",
"SecretKey": "sk_live_your_live_secret_key",
"WebhookSecret": "whsec_your_live_webhook_secret"
}
}cd API
dotnet test --collect:"XPlat Code Coverage"cd client
npm test -- --coverageWe welcome contributions to APex Store! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests for new functionality
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Backend: Follow C# naming conventions and .NET best practices
- Frontend: Use TypeScript strict mode and React best practices
- Comments: Write clear, concise comments for complex logic
- Testing: Maintain test coverage above 80%
This project is licensed under the MIT License - see the LICENSE file for details.
- Anime/Manga Community: For inspiration and feedback
- Open Source Libraries: Thanks to all the amazing open-source projects
- Material Design: For beautiful UI components
- Stripe: For secure payment processing
- Microsoft: For excellent .NET documentation
Built with β€οΈ for the anime and manga community