Skip to content

ghozlenear/Mirae

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

39 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

✨ Miraé - Your Beauty Journey Starts Here ✨

MiraΓ© Logo

🌸 Discover Your Beauty Routine ✨

Beauty Self-Care E-Commerce

Expo React Native TypeScript MongoDB


🌟 About Miraé

Typing SVG

MiraΓ© is a beautifully crafted mobile e-commerce application dedicated to beauty and self-care products. Whether you're looking for skincare essentials, haircare products, body care items, or elegant fragrances, MiraΓ© provides a personalized shopping experience that helps you discover your perfect beauty routine.

🎯 What Makes Miraé Special?

✨ Features

  • 🧴 Curated Beauty Products
  • πŸ’– Personalized Experience
  • πŸ›’ Seamless Shopping
  • πŸ“± Cross-Platform
  • πŸ”’ Secure Authentication
  • 🌈 Beautiful UI

πŸ’» Tech Stack

JavaScript TypeScript React Native Node.js Express.js MongoDB

Expo HTML5 CSS3 JSON Git VS Code

πŸš€ Features

🏠 Home Experience

  • Personalized welcome with user profile
  • Beautiful carousel showcasing featured products
  • Category-based product browsing (Skincare, Haircare, Bodycare, Fragrance)
  • "Self-Care Spotlight" curated product recommendations
  • "Glow Up Tips" section with beauty advice

πŸ›οΈ Shopping Features

  • Product Catalog: Browse through diverse beauty products
  • Smart Categories: Organized by skincare, haircare, bodycare, and fragrance
  • Wishlist: Save your favorite products for later
  • Shopping Cart: Easy add-to-cart functionality with quantity management
  • Product Details: Comprehensive product information with ratings

πŸ‘€ User Experience

  • Authentication: Secure signup and login system
  • Profile Management: Personal account settings and preferences
  • Onboarding: Beautiful guided introduction to the app
  • Responsive Design: Optimized for all screen sizes

πŸ”§ Technical Excellence

  • Backend API: Robust Node.js/Express server with TypeScript
  • Database: MongoDB with Mongoose ODM for flexible data management
  • Real-time Updates: Dynamic product loading and cart synchronization
  • Error Handling: Comprehensive error management and user feedback

πŸ› οΈ Tech Stack

πŸ’» Programming Languages & Technologies

JavaScript TypeScript JSX JSON

HTML5 CSS3 Shell

Frontend

  • React Native - Cross-platform mobile development
  • Expo - Development platform and tools
  • React Navigation - Navigation and routing
  • Expo Vector Icons - Beautiful iconography
  • React Native Reanimated - Smooth animations

Backend

  • Node.js - JavaScript runtime
  • Express.js - Web application framework
  • TypeScript - Type-safe development
  • MongoDB - NoSQL database
  • Mongoose - Object Document Mapping
  • JWT - Secure authentication
  • Bcrypt - Password hashing
  • Express Validator - Input validation

πŸ“± Screenshots

Onboarding Screen
🌸 Onboarding Experience
Product Showcase
🏠 Home Page
Beauty Tips
πŸ›οΈ Product Showcase
Header

πŸš€ Getting Started

Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v16 or higher)
  • npm or yarn
  • Expo CLI: npm install -g @expo/cli
  • MongoDB (local or cloud instance)
  • Git

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/mirae.git
    cd mirae
  2. Install frontend dependencies

    npm install
  3. Setup the backend

    cd backend
    npm install
  4. Configure environment variables

    Create a .env file in the backend directory:

    PORT=8080
    NODE_ENV=development
    MONGODB_URI=mongodb://localhost:27017/mirae
    JWT_SECRET=your-super-secret-jwt-key-here
    JWT_EXPIRES_IN=7d
    CORS_ORIGIN=http://localhost:3000
  5. Start the backend server

    cd backend
    npm run dev
  6. Start the frontend application

    # From the root directory
    npx expo start
  7. Run on your preferred platform

    • iOS Simulator: Press i in the terminal
    • Android Emulator: Press a in the terminal
    • Web Browser: Press w in the terminal
    • Mobile Device: Scan the QR code with Expo Go app

🎨 Design System

🌈 Color Palette

MiraΓ© uses a soft, elegant pink color scheme that reflects beauty and femininity:

Primary Pink
#FADADD
Main background color
Secondary Pink
#F7C8D0
Accent color for buttons
Text Dark
#2c3e50
Primary text color

Typography

  • Primary Font: Poppins (various weights)
  • Fallback: System fonts for optimal performance
Footer

πŸ“š Project Structure

mirae/
β”œβ”€β”€ app/                    # Main application screens
β”‚   β”œβ”€β”€ auth/              # Authentication screens
β”‚   β”œβ”€β”€ components/        # Reusable UI components
β”‚   β”œβ”€β”€ context/           # React Context providers
β”‚   β”œβ”€β”€ onboarding/        # App introduction screens
β”‚   β”œβ”€β”€ product/           # Product detail screens
β”‚   β”œβ”€β”€ tabs/              # Bottom tab navigation screens
β”‚   └── utils/             # Utility functions
β”œβ”€β”€ assets/                # Images, fonts, and static assets
β”œβ”€β”€ backend/               # Node.js backend API
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ config/        # Database configuration
β”‚   β”‚   β”œβ”€β”€ middleware/    # Custom middleware
β”‚   β”‚   β”œβ”€β”€ models/        # Database models
β”‚   β”‚   β”œβ”€β”€ routes/        # API routes
β”‚   β”‚   └── utils/         # Backend utilities
β”œβ”€β”€ components/            # Shared React Native components
β”œβ”€β”€ constants/             # App constants and colors
β”œβ”€β”€ data/                  # Static data files
└── hooks/                 # Custom React hooks

πŸ”Œ API Endpoints

Authentication

  • POST /api/auth/signup - User registration
  • POST /api/auth/login - User login
  • GET /api/auth/me - Get current user profile
  • PUT /api/auth/profile - Update user profile

Products

  • GET /api/products - Get all products
  • GET /api/products/:id - Get specific product
  • GET /api/products/category/:category - Get products by category

Cart & Favorites

  • GET /api/cart - Get user's cart items
  • POST /api/cart/add - Add item to cart
  • PUT /api/cart/update - Update cart item quantity
  • DELETE /api/cart/remove - Remove item from cart

πŸ§ͺ Testing

Backend Testing

cd backend
npm test

Frontend Testing

npm test

API Testing

You can test the API endpoints using:

  • Postman
  • Insomnia
  • Thunder Client (VS Code extension)

πŸ“¦ Available Scripts

Frontend

npm start          # Start Expo development server
npm run android    # Run on Android emulator
npm run ios        # Run on iOS simulator
npm run web        # Run on web browser
npm run lint       # Run ESLint

Backend

npm run dev        # Start development server with nodemon
npm run build      # Build TypeScript to JavaScript
npm start          # Start production server
npm test           # Run tests

πŸš€ Deployment

Frontend Deployment

  1. Build the app for production:

    npx expo build:android  # For Android
    npx expo build:ios      # For iOS
    npx expo build:web      # For Web
  2. Deploy to your preferred platform:

    • Android: Google Play Store
    • iOS: Apple App Store
    • Web: Vercel, Netlify, or any static hosting

Backend Deployment

  1. Build the backend:

    cd backend
    npm run build
  2. Deploy to cloud platforms:

    • Heroku
    • Railway
    • DigitalOcean
    • AWS
    • Google Cloud

🀝 Contributing

We welcome contributions to make MiraΓ© even more beautiful! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add some amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Contribution Guidelines

  • Follow the existing code style
  • Add tests for new features
  • Update documentation as needed
  • Ensure all tests pass before submitting

πŸ‘₯ Team

Created with ❀️ by Ghozlene Arhab


Footer

✨ Start your beauty journey with Miraé today! ✨

About Features Getting Started API Contributing

About β€’ Features β€’ Getting Started β€’ API β€’ Contributing

Typing SVG

CI Stars Forks Watchers

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors