Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“– SoulScript

A sanctuary for words that move, heal, and inspire.

SoulScript is a modern, elegant web application built with React that allows users to discover, share, and collect inspiring quotes. Whether you're seeking daily motivation, wisdom, or simply beautiful words that resonate with your soul, SoulScript provides a curated experience for quote enthusiasts.

React Vite TailwindCSS Firebase


✨ Features

🎯 Core Functionality

  • Quote Discovery: Browse a curated collection of inspiring quotes from various sources
  • Quote of the Day: Get a fresh, inspiring quote every day to start your day right
  • Random Quote Generator: Generate random inspirational quotes on demand
  • Smart Filtering: Filter quotes by categories and tags (inspirational, success, wisdom, life, happiness)
  • Search Functionality: Search through quotes to find exactly what you're looking for
  • Personal Collection: Save and manage your favorite quotes in your personal collection

πŸ” User Authentication

  • Email/Password Authentication: Traditional sign-up and login system
  • Google Sign-In: Quick authentication using Google OAuth
  • Protected Routes: Secure user-specific features and data
  • Session Management: Persistent authentication state across sessions
  • Account Management: User profile and account settings

πŸ’« User Experience

  • Modern UI/UX: Clean, minimalist interface with elegant design
  • Smooth Animations: Framer Motion powered animations for delightful interactions
  • Responsive Design: Fully responsive layout that works on all devices
  • Beautiful Gradients: Eye-catching rose and orange gradient themes
  • Interactive Cards: Beautifully designed quote cards with hover effects
  • Loading States: Smooth loading animations and states

πŸ“ User-Generated Content

  • Create Quotes: Share your own thoughts and wisdom with the community
  • Author Attribution: Properly credit quote authors
  • Personal Storage: Your quotes are saved to your personal collection
  • Local Persistence: Quotes are stored in localStorage for quick access

πŸ› οΈ Technology Stack

Frontend Framework

  • React 19.0.0: Latest React version with modern features
  • React Router DOM 7.5.2: Client-side routing and navigation
  • Vite 6.3.1: Next-generation frontend tooling for fast development

Styling

  • TailwindCSS 4.1.4: Utility-first CSS framework
  • Framer Motion 12.10.0: Production-ready animation library
  • Custom Gradients: Rose and orange themed color palette

Authentication & Backend

  • Firebase 11.6.1: Authentication and backend services
    • Firebase Authentication (Email/Password & Google OAuth)
    • Firebase Analytics
    • Firebase Security Rules
  • React Firebase Hooks 5.1.1: React hooks for Firebase

UI Components & Icons

  • React Icons 5.5.0: Popular icon library
  • React Google Button 0.8.0: Pre-styled Google sign-in button

External APIs

  • ZenQuotes API: Quote data source via AllOrigins proxy
  • REST API Integration: Fetching quotes from external sources

Development Tools

  • ESLint 9.22.0: Code linting and quality
  • Vite Plugins: React plugin for fast refresh

πŸ“ Project Structure

SoulScript-main/
β”œβ”€β”€ public/                    # Static assets
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ api/
β”‚   β”‚   └── fetchQuotes.js    # API integration for fetching quotes
β”‚   β”œβ”€β”€ assets/               # Images and static resources
β”‚   β”œβ”€β”€ Components/
β”‚   β”‚   β”œβ”€β”€ Account.jsx       # User account management
β”‚   β”‚   β”œβ”€β”€ FilterTags.jsx    # Quote category filters
β”‚   β”‚   β”œβ”€β”€ MyQuotes.jsx      # Personal quote collection
β”‚   β”‚   β”œβ”€β”€ Navbar.jsx        # Navigation bar
β”‚   β”‚   β”œβ”€β”€ ProtectedRoute.jsx # Route authentication wrapper
β”‚   β”‚   β”œβ”€β”€ QuoteCard.jsx     # Individual quote display card
β”‚   β”‚   β”œβ”€β”€ QuoteOfTheDay.jsx # Daily featured quote
β”‚   β”‚   β”œβ”€β”€ RandomQuoteGenerator.jsx # Random quote generator
β”‚   β”‚   β”œβ”€β”€ SearchBar.jsx     # Quote search functionality
β”‚   β”‚   β”œβ”€β”€ SignIn.jsx        # Login component
β”‚   β”‚   └── Signup.jsx        # Registration component
β”‚   β”œβ”€β”€ Conf/
β”‚   β”‚   └── conf.js           # Firebase configuration
β”‚   β”œβ”€β”€ Context/
β”‚   β”‚   └── AuthContext.jsx   # Authentication state management
β”‚   β”œβ”€β”€ Pages/
β”‚   β”‚   β”œβ”€β”€ About.jsx         # About page
β”‚   β”‚   β”œβ”€β”€ Home.jsx          # Landing page
β”‚   β”‚   └── Quotes.jsx        # Quote browsing page
β”‚   β”œβ”€β”€ Utils/
β”‚   β”‚   └── Firebase.js       # Firebase initialization
β”‚   β”œβ”€β”€ App.jsx               # Main app component with routing
β”‚   β”œβ”€β”€ App.css               # App-specific styles
β”‚   β”œβ”€β”€ index.css             # Global styles
β”‚   └── main.jsx              # Application entry point
β”œβ”€β”€ eslint.config.js          # ESLint configuration
β”œβ”€β”€ index.html                # HTML template
β”œβ”€β”€ package.json              # Project dependencies
β”œβ”€β”€ vite.config.js            # Vite configuration
└── README.md                 # Project documentation

πŸš€ Getting Started

Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v18 or higher)
  • npm or yarn package manager
  • Firebase account for authentication setup

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/SoulScript.git
    cd SoulScript-main
  2. Install dependencies

    npm install
  3. Configure Firebase

    Create a src/Conf/conf.js file with your Firebase credentials:

    const conf = {
      FIREBASE_API_KEY: "your-api-key",
      FIREBASE_AUTH_DOMAIN: "your-auth-domain",
      FIREBASE_PROJECT_ID: "your-project-id",
      FIREBASE_STORAGE_BUCKET: "your-storage-bucket",
      FIREBASE_MESSAGING_SENDER_ID: "your-sender-id",
      FIREBASE_APP_ID: "your-app-id",
      FIREBASE_MEASUREMENT_ID: "your-measurement-id"
    };
    
    export default conf;
  4. Start the development server

    npm run dev
  5. Open your browser

    Navigate to http://localhost:5173 to see the app running.

Build for Production

npm run build

This creates an optimized production build in the dist folder.

Preview Production Build

npm run preview

🎨 Key Features Deep Dive

1. Home Page

  • Hero section with welcoming message
  • Quote of the Day feature
  • Random Quote Generator
  • Quick access to personal collection (for authenticated users)
  • Featured quotes gallery

2. Quotes Page

  • Comprehensive quote browsing
  • Tag-based filtering system
  • Refresh button to load new quotes
  • Beautiful card-based layout
  • Smooth animations and transitions

3. My Quotes (Protected)

  • Create and share your own quotes
  • View your personal collection
  • Edit and manage your quotes
  • Local storage persistence
  • User-specific data isolation

4. Authentication System

  • Secure email/password registration
  • Google OAuth integration
  • Protected routes for authenticated features
  • Persistent session management
  • User profile integration

5. About Page

  • Mission and vision statement
  • Feature highlights
  • Design philosophy
  • Community information

πŸ”§ Configuration

Environment Setup

The app uses Firebase for authentication. You'll need to:

  1. Create a Firebase project at Firebase Console
  2. Enable Authentication methods (Email/Password and Google)
  3. Add your web app to Firebase project
  4. Copy the configuration to src/Conf/conf.js

Vite Configuration

The project includes custom Vite configuration for:

  • React Fast Refresh
  • TailwindCSS integration
  • Firebase authentication proxy
  • Production optimizations

πŸ“± Responsive Design

SoulScript is fully responsive and optimized for:

  • πŸ“± Mobile devices (320px and up)
  • πŸ“± Tablets (768px and up)
  • πŸ’» Desktops (1024px and up)
  • πŸ–₯️ Large screens (1280px and up)

🎯 API Integration

ZenQuotes API

  • Endpoint: https://zenquotes.io/api/quotes
  • Proxy: AllOrigins for CORS handling
  • Features: Fetches curated quotes with authors and tags
  • Fallback: Built-in fallback quotes for offline support

πŸ” Authentication Flow

  1. User visits the app
  2. Can browse public quotes without authentication
  3. Sign up or log in to access personal features
  4. Google OAuth or email/password authentication
  5. Protected routes redirect unauthenticated users
  6. Session persists across page reloads
  7. Logout clears authentication state

πŸ’Ύ Data Storage

Local Storage

  • User quotes stored per user ID
  • Format: quotes_${userId}
  • Includes: quote text, author, timestamp, user info

Firebase

  • User authentication data
  • Session management
  • Google OAuth tokens

🎨 Design Philosophy

SoulScript embraces:

  • Minimalism: Clean, uncluttered interface
  • Elegance: Sophisticated color palette and typography
  • User-Centric: Intuitive navigation and interactions
  • Accessibility: Readable fonts and proper contrast
  • Performance: Optimized loading and smooth animations

🚧 Future Enhancements

Potential features for future versions:

  • Cloud database integration for cross-device sync
  • Social sharing capabilities
  • Quote categories expansion
  • User profiles with avatars
  • Comment and discussion features
  • Quote rating system
  • Dark mode support
  • Export quotes as images
  • API for third-party integrations
  • Mobile app versions

🀝 Contributing

Contributions are welcome! Here's how you can help:

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

πŸ“„ License

This project is open source and available under the MIT License.


πŸ‘¨β€πŸ’» Author

Created with ❀️ by an engineering student passionate about clean design, elegant words, and meaningful user experiences.


πŸ™ Acknowledgments

  • ZenQuotes API for providing quality quote content
  • Firebase for authentication infrastructure
  • Framer Motion for beautiful animations
  • TailwindCSS for rapid UI development
  • React Community for excellent tools and libraries

πŸ“ž Support

If you have any questions or run into issues:

  • Open an issue on GitHub
  • Check existing documentation
  • Review Firebase setup guides

🌟 Show Your Support

If you like this project, please give it a ⭐ on GitHub!


Made with πŸ’– using React, Vite, TailwindCSS, and Firebase

About

A Guote Daily Project

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages