Skip to content

gunawanjason/Blessings365

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

128 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ™ Blessings365 โ€” Daily Bible Reading

Version Platform License

Read the Bible daily with Blessings365 โ€” A beautiful 365-day reading plan with multiple translations, verse comparison, and a seamless reading experience.


โœจ Features

๐Ÿ“– Daily Reading

  • 365-day structured reading plan covering the entire Bible
  • Date picker to navigate to any day of the year
  • Pericope headings for better context and understanding
  • Verse selection โ€” click any verse to select it

๐ŸŒ Multiple Translations

Support for 11 Bible translations across multiple languages:

Translation Language Code
๐Ÿ‡ฎ๐Ÿ‡ฉ TB (Terjemahan Baru) Indonesian TB
๐Ÿ‡บ๐Ÿ‡ธ ESV English ESV
๐Ÿ‡บ๐Ÿ‡ธ KJV English KJV
๐Ÿ‡บ๐Ÿ‡ธ NASB English NASB
๐Ÿ‡บ๐Ÿ‡ธ NIV English NIV
๐Ÿ‡บ๐Ÿ‡ธ NLT English NLT
๐Ÿ‡บ๐Ÿ‡ธ TLB English TLB
๐Ÿ‡จ๐Ÿ‡ณ ๆ–ฐ่ฏ‘ๆœฌ (CNVS) Chinese Simplified CNVS
๐Ÿ‡จ๐Ÿ‡ณ ๆ–ฐๆ ‡็‚นๅ’Œๅˆๆœฌ (ไธŠๅธ็‰ˆ) Chinese Simplified CUNPSS-ไธŠๅธ
๐Ÿ‡จ๐Ÿ‡ณ ๆ–ฐๆ ‡็‚นๅ’Œๅˆๆœฌ (็ฅž็‰ˆ) Chinese Simplified CUNPSS-็ฅž
๐Ÿ‡ญ๐Ÿ‡ฐ ๅ’Œๅˆๆœฌ (CUV) Chinese Traditional CUV

โš–๏ธ Compare Versions

  • Side-by-side comparison of any two translations
  • Synchronized scrolling between panels
  • Aligned verses for easy comparison
  • Mobile-friendly with swipe indicators

๐ŸŽจ Customization

Setting Options
Theme Light / Dark mode
Font Size Small / Medium / Large
Copy Format Regular / Bold text

๐Ÿ“ฑ Responsive Design

  • Mobile-first design that works beautifully on any device
  • Bottom navigation for easy access on small screens
  • Smooth animations and transitions

๐Ÿš€ Quick Start

Prerequisites

Installation

# Clone the repository
git clone https://github.com/gunawanjason/Blessings365.git
cd Blessings365

# Install dependencies
pnpm install

Development

# Start the development server
pnpm run dev

Then open http://localhost:5173 in your browser.

Production Build

# Build for production
pnpm run build

# Preview the production build
pnpm run preview

๐Ÿ“ Project Structure

Blessings365/
โ”œโ”€โ”€ index.html              # Main HTML entry point
โ”œโ”€โ”€ package.json            # Project dependencies
โ”œโ”€โ”€ vite.config.js          # Vite configuration
โ”‚
โ”œโ”€โ”€ public/
โ”‚   โ”œโ”€โ”€ Translated_Bacaan_Alkitab_365.json   # 365-day reading plan
โ”‚   โ””โ”€โ”€ assets/
โ”‚       โ”œโ”€โ”€ bcc.ico             # App favicon
โ”‚       โ”œโ”€โ”€ bcc.png             # App icon
โ”‚       โ”œโ”€โ”€ favicon.ico         # Favicon
โ”‚       โ”œโ”€โ”€ apple-touch-icon-144x144.png  # iOS icon
โ”‚       โ”œโ”€โ”€ apple-touch-icon-180x180.png  # iOS icon
โ”‚       โ”œโ”€โ”€ icon-192x192.webp   # PWA icon
โ”‚       โ”œโ”€โ”€ icon-512x512.webp   # PWA icon
โ”‚       โ””โ”€โ”€ manifest.json       # PWA manifest
โ”‚
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ main.js             # App initialization & routing
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”œโ”€โ”€ BottomNav.js        # Mobile bottom navigation
โ”‚   โ”‚   โ”œโ”€โ”€ DatePicker.js       # Date selection component
โ”‚   โ”‚   โ”œโ”€โ”€ Header.js           # App header
โ”‚   โ”‚   โ”œโ”€โ”€ ScrollToTop.js      # Scroll to top button
โ”‚   โ”‚   โ”œโ”€โ”€ SettingsPanel.js    # Settings drawer
โ”‚   โ”‚   โ”œโ”€โ”€ VerseDisplay.js     # Verse rendering
โ”‚   โ”‚   โ”œโ”€โ”€ VerseSelection.js   # Verse selection manager
โ”‚   โ”‚   โ””โ”€โ”€ VersionSelector.js  # Translation selector
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ pages/
โ”‚   โ”‚   โ”œโ”€โ”€ DailyPage.js     # Daily reading page
โ”‚   โ”‚   โ””โ”€โ”€ ComparePage.js   # Version comparison page
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ data/
โ”‚   โ”‚   โ”œโ”€โ”€ bookNames.js    # Book name translations
โ”‚   โ”‚   โ””โ”€โ”€ config.js       # App configuration
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ styles/
โ”‚   โ”‚   โ”œโ”€โ”€ base.css        # Base styles
โ”‚   โ”‚   โ”œโ”€โ”€ variables.css   # CSS custom properties
โ”‚   โ”‚   โ”œโ”€โ”€ typography.css  # Typography
โ”‚   โ”‚   โ”œโ”€โ”€ animations.css  # Animations
โ”‚   โ”‚   โ”œโ”€โ”€ index.css       # Main CSS import
โ”‚   โ”‚   โ””โ”€โ”€ components/     # Component-specific styles
โ”‚   โ”‚       โ”œโ”€โ”€ actions.css
โ”‚   โ”‚       โ”œโ”€โ”€ bottom-nav.css
โ”‚   โ”‚       โ”œโ”€โ”€ buttons.css
โ”‚   โ”‚       โ”œโ”€โ”€ compare.css
โ”‚   โ”‚       โ”œโ”€โ”€ controls.css
โ”‚   โ”‚       โ”œโ”€โ”€ feedback.css
โ”‚   โ”‚       โ”œโ”€โ”€ header.css
โ”‚   โ”‚       โ”œโ”€โ”€ hero.css
โ”‚   โ”‚       โ”œโ”€โ”€ settings.css
โ”‚   โ”‚       โ”œโ”€โ”€ tabs.css
โ”‚   โ”‚       โ”œโ”€โ”€ verses.css
โ”‚   โ”‚       โ””โ”€โ”€ widgets.css
โ”‚   โ”‚
โ”‚   โ””โ”€โ”€ utils/
โ”‚       โ”œโ”€โ”€ analytics.js        # Google Analytics
โ”‚       โ”œโ”€โ”€ api.js               # API fetch functions
โ”‚       โ”œโ”€โ”€ comparisonSync.js   # Verse synchronization
โ”‚       โ”œโ”€โ”€ confetti.js          # Celebration effects
โ”‚       โ””โ”€โ”€ helpers.js           # Utility functions

๐Ÿ”ง How It Works

Routing

The app uses a simple hash-based router:

// Routes
#/         โ†’ Daily reading page (default)
#/compare   โ†’ Compare versions page

Reading Plan

The 365-day reading plan is stored in public/Translated_Bacaan_Alkitab_365.json:

{
  "1": ["Genesis 1:1-2:3", "Genesis 2:4-25", "Genesis 3:1-24"],
  "2": ["Genesis 4:1-16", "Genesis 4:17-26", "Genesis 5:1-32"],
  ...
}

API Integration

Verses are fetched from the Blessings365 API:

// Fetch verses
const url = `https://api.blessings365.top/${translation}/multiple?verses=${versesString}`;
const data = await fetch(url).then((res) => res.json());

Settings Persistence

User preferences are stored in localStorage:

// Saved settings
localStorage.getItem("theme"); // 'light' | 'dark'
localStorage.getItem("fontSize"); // 'verse-line--small' | 'verse-line--medium' | 'verse-line--large'
localStorage.getItem("boldCopy"); // 'true' | 'false'

๐ŸŽฏ Key Components

Settings Panel

The settings panel provides a slide-out drawer with customization options:

Control Function
โ˜€๏ธ/๐ŸŒ™ Theme Toggle Switch between light and dark mode
Aa Font Size Choose small, medium, or large text
B Copy Format Toggle bold text when copying verses

Verse Display

  • Tab navigation between books
  • Click to select individual verses
  • Headings for pericope divisions
  • Copy button for selected verses

Comparison View

  • Two-column layout for side-by-side reading
  • Synchronized scrolling across panels
  • Mobile indicators showing current panel
  • Auto-alignment of verses between translations

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Development Workflow

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

๐Ÿ“„ License

This project is licensed under the MIT License โ€” see the LICENSE file for details.


๐Ÿ™ Acknowledgments


๐Ÿ“– Start Reading Today!

Visit Blessings365 โ†’

Made with โค๏ธ for daily Bible reading

About

PAW reading plan bible. Data are fetched from our own BlessingsAPI.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors