Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/barelief/pasaulis-telpa-akiratin
Bilingual poetry website featuring Polish and Lithuanian poems. Built with Astro, React, Tailwind, and Paysera API for one-product shopping. Includes print-ready PDF generation.
https://github.com/barelief/pasaulis-telpa-akiratin
astro poetry react
Last synced: 4 months ago
JSON representation
Bilingual poetry website featuring Polish and Lithuanian poems. Built with Astro, React, Tailwind, and Paysera API for one-product shopping. Includes print-ready PDF generation.
- Host: GitHub
- URL: https://github.com/barelief/pasaulis-telpa-akiratin
- Owner: barelief
- Created: 2024-08-22T08:46:01.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2024-08-26T06:17:53.000Z (5 months ago)
- Last Synced: 2024-09-24T08:43:32.552Z (4 months ago)
- Topics: astro, poetry, react
- Language: JavaScript
- Homepage: https://literaci.lt/pta
- Size: 241 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Pasaulis Telpa Akiratin
![Pasaulis telpa akiratin website](https://literaci.lt/pta/website_pta.jpg)
Interactive demo: https://literaci.lt/pta
Printed demo: https://literaci.lt/print
Vue based prototype: https://literaci.lt/postvilnius## Overview
**Pasaulis Telpa Akiratin** is a bilingual poetry collection website, presenting a carefully curated selection of Polish and Lithuanian poems. The site organizes poems under various themes, including relationships, identity, and transgression, offering readers an immersive experience in exploring diverse poetic expressions.
The project is built with modern web development technologies such as Astro, React, nanostores, Tailwind CSS, Airtable, and Paged.js.
## Features
- **Bilingual Content**: The website supports both Polish and Lithuanian languages, catering to a diverse audience.
- **Thematic Categorization**: Poems are categorized under distinct themes like relationships, identity, and transgression for easy navigation.
- **Dynamic Foldable UI**: A unique foldable UI component allows users to dynamically fold and unfold poem content, enhancing the browsing experience.
- **Liked Poems modal**: Users can interact with poems by marking them as liked, creating a personalized collection of favorite poems.
- **Interactive Shopping Cart**: An intuitive shopping cart feature is integrated with the Paysera API, providing a one-product shopping experience, allowing users to purchase books directly from the website.
- **PDF Generation**: Paged.js and Puppetteer are utilized to generate the final PDF version of the book, facilitating the production of a printed copy using JavaScript.
## Technologies Used- **Astro**: A modern, fast web framework optimized for static site generation.
- **React**: A JavaScript library for building user interfaces, allowing for dynamic and responsive components.
- Nanostores: Lightweight state management solution used for managing and persisting state outside of components, enhancing application efficiency and scalability.
- **Tailwind CSS**: A utility-first CSS framework that helps in creating responsive and customizable UI designs.
- **Airtable**: A flexible database used for managing and organizing the poem content.
- **Paged.js**: A library for paginating web content into print-ready PDFs, perfect for generating the final printed book version.
- **Paysera API**: An API integration for handling secure online payments within the site.## Project Structure
```bash
โโโ ๐ astro.config.mjs # Configuration file for Astro
โโโ ๐ dep.cmd # Batch script to build and deploy automatically
โโโ ๐ deploy.py # Python script for deploying the project
โโโ ๐ dev.cmd # Batch script to start the development server
โโโ ๐ package.json # NPM config
โโโ ๐ public # Publicly accessible static files and assets
โ โโโ ๐ scripts # Directory for JavaScript files used in the public-facing site
โ โโโ ๐ toggleDivVisibility.js # Script to toggle the visibility of a div (secton) on the website
โโโ ๐ README.md # Project's readme file
โโโ ๐ src
โ โโโ ๐ assets
โ โ โโโ ๐ data # data files
โ โ โ โโโ ๐ poems.json # JSON file containing data related to poems
โ โ โโโ ๐ images # Directory for image files
โ โ โ โโโ ๐ icons # Directory for icon files
โ โ โ โโโ ๐ textures # Directory for texture image files
โ โ โโโ ๐ styles
โ โ โโโ ๐ base.css # foundational styles
โ โโโ ๐ components # Reusable UI components used throughout the application
โ โ โโโ ๐ Footer.astro # Astro component for the website's footer
โ โ โโโ ๐ Navbar.astro # Astro component for the website's navigation bar
โ โ โโโ ๐ PoemTopicSection.astro # Astro component for displaying a section of poem topics
โ โ โโโ ๐ react # React components directory
โ โ โ โโโ ๐ AddToCart.tsx # React component for adding items to a cart
โ โ โ โโโ ๐ FoldedDiv.jsx # React component for a collapsible/foldable div
โ โ โ โโโ ๐ modal # Directory for modal-related components
โ โ โ โ โโโ ๐ checkout # Components related to the checkout process
โ โ โ โ โ โโโ ๐ CostSummary.jsx # Component displaying the cost summary
โ โ โ โ โ โโโ ๐ ModalBase.jsx # Base component for modals
โ โ โ โ โ โโโ ๐ ModalCart.jsx # Component for the cart modal
โ โ โ โ โ โโโ ๐ ModalReviewOrder.jsx # Component for reviewing the order before confirmation
โ โ โ โ โ โโโ ๐ ModalShippingDetails.jsx # Component for entering shipping details in a modal
โ โ โ โ โ โโโ ๐ shipping_locations.ts # Data file for shipping location options
โ โ โ โ โโโ ๐ ModalManagerCheckout.jsx # Manager component handling modal states during checkout
โ โ โ โ โโโ ๐ ReopenLastModal.jsx # Component to reopen the last viewed modal
โ โ โ โ โโโ ๐ ToggleModal.jsx # Component to toggle modals on and off
โ โ โ โโโ ๐ ToggleFlyoutCart.tsx # Component to toggle a cart modal
โ โ โ โโโ ๐ ToggleFlyoutLikes.tsx # Component to toggle a likes modal
โ โ โโโ ๐ ToggleSection.astro # Astro component to toggle visibility of a section
โ โโโ ๐ env.d.ts # TypeScript environment configuration file
โ โโโ ๐ layouts # Layout components for different page layouts
โ โ โโโ ๐ Layout.astro # Astro layout component for consistent page structure
โ โโโ ๐ pages # Directory containing the actual pages of the site
โ โ โโโ ๐ apie.astro # Astro page for the "About" section
โ โ โโโ ๐ index.astro # Astro page for the home page
โ โ โโโ ๐ taisykles.md # Markdown file for the "Rules" section of the site
โ โโโ ๐ sandbox # Sandbox directory for testing and experimenting
โ โโโ ๐ scripts # JavaScript/TypeScript scripts for various functionalities
โ โ โโโ ๐ fetchPoems.js # Script to fetch poems data (Node based)
โ โ โโโ ๐ saveJSONToFile.js # Script to save JSON data to a file (Node based)
โ โโโ ๐ stores # Directory for managing global state using stores
โ โ โโโ ๐ checkoutStore.ts # Store for managing checkout-related state
โ โ โโโ ๐ likesStore.ts # Store for managing likes-related state
โ โ โโโ ๐ modalStore.ts # Store for managing modal-related state
โ โโโ ๐ types # TypeScript type definitions
โ โโโ ๐ poem.ts # Type definitions related to poems
โโโ ๐ sync.cmd # Batch script to synchronize files to server
โโโ ๐ tailwind.config.js # Tailwind CSS configuration file
โโโ ๐ tree.txt # File containing the directory tree
โโโ ๐ tsconfig.json # TypeScript configuration file
```## TODO for production
- [ ] Connect to Paysera API Service https://developers.paysera.com/en/checkout/flow
- [ ] i18n
- [x] persist nanostores
- [x] cart items
- [x] user favorites
- [ ] ~~Fold / unfold section~~
- [x] Hide / show section
- [x] Expand / Hide all
- [x] modal / route
- [ ] Favorite poem modal
- [x] Shopping cart modal
- [ ] checkout modal## Author
- **Bartosh Polonski*** - [GitHub Profile](https://github.com/barelief)
## License
The code in this repository is licensed under the MIT License.
*However, the poems and book content (`poems.json`) are **not** covered by this license and are copyrighted by their respective authors. Please contact the authors or rights holders for more information regarding the usage of the poems and book content.*
ยฉ Mantas Balakauskas, Dorota Bartoszewicz, Mirosลawa Bartoszewicz, Alina Borzenkaitฤ, Ramunฤ Brundzaitฤ, Nerijus Cibulskas, Linas Daugฤla, Marek Domaลski, Daniel Dowejko, Paulius Gadeikis, Dovydas Grajauskas, Ignฤ Grikeviฤiลซtฤ, Patricija Gudeikaitฤ, Goda Gurinskaitฤ, Jonas Jankauskas, Auลกra Kaziliลซnaitฤ, Jovaras Kelpลกas, Mindaugas Kirka, Daniel Krajczyลski, Laura Kromalcaitฤ, ลฝygimantas Kudirka, Gabrielฤ Labanauskaitฤ, Augustas Lapinskas, Romuald ลawrynowicz, Ramลซnas Liutkeviฤius, Agnieszka Mackojฤ, Marzena Mackojฤ-Sinkeviฤienฤ, Agnieszka Masalytฤ, Boลผena Naruszewicz, Ewa Nausewicz, Ernestas Noreika, Dominykas Norkลซnas, Dominika Olicka, Karol Pasznikowicz, Krystyna Pawtel, Tomas Petrulis, Marius Povilas Elijas Martynenko, Nojus Saulytis, Tomasz Snarski, Monika Staugaitytฤ, Patrycja Stefanowicz, Tomas Tamoลกiลซnas, Guoda Taraลกkeviฤiลซtฤ, Urลกulฤ Toleikytฤ, Mantas Toloฤka, Kristina Uลพฤnaitฤ, Indrฤ Valantinaitฤ, Gabrielฤ Vetkinaitฤ, Ingrida Viluckytฤ, Kamila Zujeviฤ, Maria ลปukowska, eilฤraลกฤiai, 2023
ยฉ Birutฤ Jonuลกkaitฤ, Vidas Morkลซnas, ลฝilvinas Norkลซnas, Jลซratฤ Petronienฤ, Bartoลก Polonski, Agnieszka Rembiaลkowska, vertimai, 2023
ยฉ Bartoลก Polonski, sudarymas, dizainas, 2023
ยฉ Lenkลณ literatลณ asociacija, 2023