Git Product home page Git Product logo

holy-ui's Introduction

Holy: Web UI

Introduction

Holy is an open-source web application, crafted by a team of volunteer engineers. While it's versatile enough to be used for any blog site, its primary design is aimed at serving Churches and Temples. While the website will be fully functional on desktop, its design and user experience are primarily optimized for mobile users, reflecting the prevailing trend of mobile dominance in internet usage today.

Holy UI is a React app built using (Vite)[https://vitejs.dev/] and (Material-UI)[https://mui.com/material-ui/getting-started/] for fast development. It uses Bun, an alternative to Node.js, to run your app. Here you'll find all the necessary files and instructions to get up and running with this project.

Note: This version of Holy UI utilizes (Material-UI)[https://mui.com/material-ui/getting-started/], a popular React UI library for building fast, scalable, and accessible applications.

Demo Site

(Demo)[https://holydemo.com/]

Prerequisites

  1. Install Bun on your machine. (Node is also fine)
  2. Basic understanding of React, Vite, and Material-UI.

Note : If using npm use --legacy-peer-deps flag.

Getting Started

  1. Clone or download this repository to your local machine.
  2. Navigate to the project directory in your terminal.
  3. Install the dependencies

    bun install. (Node : npm install & then npm i @mui/styles --force)

  4. Run the app

    bun dev. (Node : npm run dev) Your app should now be running at http://localhost:3000

Kanban board : clickup

signup for for fee and request admin for invite
https://app.clickup.com/9014227579/v/b/li/901402296735

API Testing platform : insomnia

signup for for fee and request admin for invite
https://insomnia.rest/

Code Structure

  • main.jsx: The entry point of the application. It renders the root component of your app, which is .
  • index.html: The HTML file that contains the root element where your app will be mounted.
  • src/App.css: Contains CSS styles for the App component.
  • src/App.jsx: The main component of your application. It imports and uses the necessary libraries and utilities from Vite, Material-UI, and React.
  • package.json: Contains metadata about your project, including its name, version, dependencies, and scripts.'

Scope : Release 1 (Core Functionality)

  1. Admin - The ability to create/edit pages,add content and upload media dynamically
  2. Public - view, navigate and filter (date & global search)
  3. Supported contents - Text,Pdf, Image, Audio, Video
  4. Language - multi language support including autotranslate
  5. Theme - light/Dark mode and Stye colors selectors

Scope : Release 2

  1. Donation manager - (with monthly subscription Feature)
  2. Notification Manager (SMS)
  3. User profile manager
  4. My donations and Org statements viewer
  5. Sentiment and Comment Integration

Scope : Release 3

  1. Chat engine
  2. Pastoral care and Members manager

License

MIT

Free Software, Yeah always free !

holy-ui's People

Contributors

davewish avatar misghna avatar kuldep7 avatar fabipercu avatar siru-kid avatar kuldeepgkmit avatar hermyh21 avatar nahitu avatar emitoaig avatar

Stargazers

 avatar

Watchers

 avatar

holy-ui's Issues

Content Manager

GET : http://localhost:8000/api/contents?content_category=home&lang=english&start=0&limit=9

[ {
"id": 1,
"lang": "english",
"type": "image",
"title": "Pics Test",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
"content_text": "test",
"background_image": "http://localhost:8000/storage/uploaded/6ca5790f-571f-4b90-b15a-f409f1332ab1_1.jpg",
"content_category": "Home",
"release_date_time": 1713252420000,
"m_link": "6ca5790f-571f-4b90-b15a-f409f1332ab1_3.jpg",
"file_type": "image",
"media_link": [
"http://localhost:8000/storage/uploaded/6ca5790f-571f-4b90-b15a-f409f1332ab1_2.jpg",
"http://localhost:8000/storage/uploaded/6ca5790f-571f-4b90-b15a-f409f1332ab1_3.jpg"
]
}
]

POST : http://localhost:8000/api/secured/contents

{
	"id": 1,
	"lang": "english",
	"type": "image",
	"title": "Pics Test",
	"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
	"content_text": "test",
	"background_image": 7
	"content_category": "Home",
	"file_type": "image",
	"media_link": [
		6,8
	]
}
Screenshot 2024-06-15 at 8 33 30 PM

Adding a file mapper

** Create a file_mapper table with the following columns:

  • id
  • ref_id (No Foreign Key)
  • file_id (Foreign Key to files table ‘id’)
    * ref_type (to distinguish between ref type)
    * updated_at
    • updated_by (Foreign Key to users table)

** Remove image_link and header_img columns from the page_config table.

** Update the PageConfig and FileMapper models to reflect these changes.

** Modify the PageConfigController to handle the new structure and return the appropriate JSON response.

sample json POST would then be
{
"page_type": "public",
"name": "Home2",
"description": "test3",
"parent": 0,
"header_img": [23,94],
"language": "english",
"header_text": "test3",
"page_url": "/home",
"seq_no":0
}

so you push to file mapper db as

you need to loop and push for each id in the array

id = gen id <22323>
ref_id =
ref_type=“page_config”
file_id = id from the array

Dictionary

dictionary List
GET : /api/protected/dictionaries
[
{
"id": 1,
"Key": "test",
"English": "Test",
"ትግርኛ": "Not Set",
"Spanila": "Not Set"
}
]

GET (for edit) : /api/protected/dictionary?key=test
{
"Key": "test",
"English": "Test",
"ትግርኛ": "Not Set",
"Spanila": "Not Set"
}

POST : /api/protected/dictionary

Req-Body : {
"Key": "sugar",
"English": "Sugar",
"ትግርኛ": "ሽኮ"
}

PUT : /api/protected/dictionary
Req-Body : {
"id": 1,
"Key": "test",
"English": "Test",
"ትግርኛ": "Not Set"
}

Screenshot 2024-05-11 at 1 53 43 PM

Tenants

GET : /api/protected/tenants

[
{
"id": 1,
"tenant_id": 0,
"tenant_name": "Test",
"updated_at": "2024-05-14T20:19:03.000000Z",
"updated_by": "Tesfu"
},
{
"id": 2,
"tenant_id": 0,
"tenant_name": "Test2",
"updated_at": "2024-05-14T20:19:03.000000Z",
"updated_by": "Belay"
}
]

POST : /api/protected/tenants

{
"tenant_name": "Test2"
}

PUT : /api/protected/tenants
{
"tenant_name": "Fetene",
"id":4
}

Screenshot 2024-05-14 at 3 32 43 PM

User Profile

  1. add a new page under /secure/user_profile
  2. use the same template structure as /secure/content_manager
  3. have only two tabs - Access Config & Access Report
  4. this user story is focused on Access Config
  5. inside the Access Config tab, add one table and "add/edit" form
  6. plz use similar pattern of table and form like PR "page config table" for consistency
  7. see attached for layout and api details

user_profile_api.txt

Screenshot 2024-04-27 at 4 33 38 PM

Languages UI

Add content viewer/Editor for Tenants page
here is a test API
GET : /api/protected/languages
[
{
"id": 1,
"lang_id": "english",
"lang_name": "English",
"tenant_id": 0,
"updated_at": null
},
{
"id": 2,
"lang_id": "tigrigna",
"lang_name": "ትግርኛ",
"tenant_id": 0,
"updated_at": null
},
{
"id": 3,
"lang_id": "spanish",
"lang_name": "Spanila",
"tenant_id": 0,
"updated_at": "2024-05-11T17:13:33.000000Z"
}
]

POST : http://localhost:8000/api/protected/languages
{
"lang_id": "spanish",
"lang_name": "Spanola"
}

PUT : /api/protected/languages
{
"id": 3,
"lang_id": "spanish",
"lang_name": "Spanila"
}

NO delete

Screenshot 2024-05-11 at 12 47 41 PM

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.