Echoes is a modern web application that offers inspiring quotes from around the world. It aims to inspire users by providing access to wisdom and insights in different languages, all within a beautiful, responsive interface.
Live Preview | API Documentation
- π Multilingual Interface - Full internationalization support
- π§© Developer API - RESTful endpoints for programmatic access
- β‘ Performance - Fast loading and optimized for best user experience
- π± Responsive Design - Optimized for all devices from mobile to desktop
- π Quote Discovery - Random quotes with author and source information
- π Language Diversity - Quotes in multiple languages from around the world
- π Advanced Filtering - Search by author, language or combine multiple filters
- π¨ Theme Options - Light/dark mode with automatic system preference detection
The application is built with modern web technologies:
- π· TypeScript - Static type checking
- π Next-i18next - Internationalization
- π Framer Motion - Animation library
- π¨ Next-Themes - Theme management
- π¨ Tailwind CSS - Utility-first CSS framework
- βοΈ Next.js - React framework with SSR/SSG support
- Node.js 14.x or higher
- npm or yarn
# Clone the repository
git clone https://github.com/Taiizor/Echoes.git
# Navigate to the project directory
cd Echoes
# Install dependencies
npm install
# or
yarn install
# Start the development server
npm run dev
# or
yarn dev
You can access the application at http://localhost:3000
.
# Build and run with Docker Compose
docker-compose up -d
- Adding Quotes: Edit the
data/quotes.json
file to add new quotes - Theme: Customize the
tailwind.config.js
file to change color schemes - Translations: Modify files in the
public/locales
folder to update or add translations
Echoes provides a comprehensive API for developers to access the quotes programmatically:
GET /api/quotes # Get all quotes (paginated)
GET /api/quotes/:id # Get quote by ID
GET /api/quotes/random # Get random quote
# By language
GET /api/quotes/random?lang=tr
# By multiple languages (comma-separated)
GET /api/quotes/random?lang=en,tr
# By author
GET /api/quotes/random?author=Einstein
# By multiple authors (comma-separated)
GET /api/quotes/random?author=Einstein,Gandhi
# Combined filters
GET /api/quotes/random?author=Yunus&lang=tr
GET /api/quotes/random?author=Einstein,Gandhi&lang=en,tr
GET /api/quotes?page=1&perPage=10
Contributions are welcome and appreciated! Here's how you can contribute:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Add your changes
- Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Types of contributions:
- Improving or adding translations
- Adding new quotes to the database
- Fixing bugs or improving performance
- Adding new features or enhancing existing ones
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
Made with β€οΈ by Taiizor