Skip to content

Commit

Permalink
Merge branch 'develop' into playwright-frontend-tests
Browse files Browse the repository at this point in the history
  • Loading branch information
xannyxs committed Aug 6, 2024
2 parents bfa8f3e + 163471b commit 106333b
Show file tree
Hide file tree
Showing 348 changed files with 10,733 additions and 20,259 deletions.
164 changes: 90 additions & 74 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,89 +1,105 @@
# StreamETH Platform
Certainly! I'll add back the message about accepting issues. Here's the updated README.md with that information included:

Welcome to the StreamETH platform repository! StreamETH produces world class Virtual Events and Marketing Content. This README provides you with all the necessary information to understand our platform, contribute to it, and get it up and running on your local machine.
# StreamETH Platform 🎥🌐

## Website Additions
Welcome to the StreamETH platform repository! StreamETH produces world-class Virtual Events and Marketing Content. This README provides you with essential information about our platform. 🚀

For a better understanding of what StreamETH offers and how it functions, please visit our websites:

- **Public Website**: [streameth.org](https://streameth.org) - Discover what StreamETH is all about and the unique features we offer.
- **Application Site**: [app.streameth.org](https://app.streameth.org) - Interact with the StreamETH application.

## Documentation Resources
If you are planning on hosting an event, you can contact us by filling this [Typeform](https://xg2nwufp1ju.typeform.com/to/UHZwa5M3?typeform-source=info.streameth.org)

You can find detailed documentation on StreamETH's features and architecture here:

- **[Documentation Link](#)**: Dive deep into the technical details and operational aspects of StreamETH.

## StreamETH-Platform Summary
## StreamETH-Platform Summary 📋

StreamETH is designed to provide a seamless and flexible platform for hosting and attending events virtually or in a hybrid setting. It features:

- **Interactive Sessions**: Engage with speakers and attendees through live.
- **Scalability**: Cater to events of any size, from small gatherings to large conferences.
- **Customisation**: Tailor the event experience to meet the specific needs of your audience.

## Goals of StreamETH

Our mission with StreamETH is to:

- Offer a sustainable and inclusive event-hosting platform.
- Continuously enhance user experience with innovative features.
- Foster a community-driven approach to virtual event management.

## Setup Quickstart

Setting up the StreamETH platform for development is straightforward. Here’s a quick rundown:

### Prerequisites
- **Interactive Sessions**: Engage with speakers and attendees through live. 💬
- **Scalability**: Cater to events of any size, from small gatherings to large conferences. 📈
- **Customisation**: Tailor the event experience to meet the specific needs of your audience. 🎨

- Node.js (v18 or above)
- Yarn
- Git
## Website Links 🌐

### Environment Variables

Create a `.env` file at the root of the project and include the following variables:

```bash
# Session secret key
SESSION_SECRET=Generate key: "openssl rand -base64 64"

# WalletConnect Project ID
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID=your_walletconnect_project_id_here

# Infura Project ID
NEXT_PUBLIC_INFURA_ID=your_infura_project_id_here

# Sanity Studio API Key
NEXT_PUBLIC_STUDIO_API_KEY=your_Livepeer_studio_api_key_here

# Service Account Private Key for server-to-server interactions
SERVICE_ACCOUNT_PRIVATE_KEY=your_service_account_private_key_here

# Service Account Email
SERVICE_ACCOUNT_EMAIL=your_service_account_email_here

# Google API Key for services like Google Maps, etc.
GOOGLE_API_KEY=your_google_api_key_here
```

Make sure to replace your_..._here with your actual environment variable values.
For a better understanding of what StreamETH offers and how it functions, please visit our websites:

### Running Locally
- **Public Website**: [streameth.org](https://streameth.org) - Discover what StreamETH is all about and the unique features we offer. 🏠
- **Application Site**: [streameth.org/studio](https://streameth.org/studio) - Interact with the StreamETH application. 🎬
- **Create an event with us**: [Create Event](https://xg2nwufp1ju.typeform.com/to/UHZwa5M3?typeform-source=info.streameth.org)

```bash
git clone [email protected]:streamethorg/streameth-platform.git
cd streameth-platform
yarn install
yarn dev # or yarn dev
```
<!-- ## Documentation Resources 📚 -->
<!---->
<!-- You can find detailed documentation on StreamETH's features and architecture here: -->
<!---->
<!-- - **[Documentation Link](#)**: Dive deep into the technical details and operational aspects of StreamETH. 📖 -->

## Contribution Guidelines

We welcome contributions from everyone. To contribute:
## Goals of StreamETH 🎯

- **Issues**: Feel free to submit issues for bug reports, feature requests, or suggestions through our [Issues tab](#).
- **Pull Requests**: If you wish to contribute code, please make a pull request (PR) with a clear list of what you've done.
Our mission with StreamETH is to:

Read our [CONTRIBUTING.md](CONTRIBUTING.md) for detailed information on how to contribute, commit messages, and the code review process.
- Offer a sustainable and inclusive event-hosting platform. 🌱
- Continuously enhance user experience with innovative features. 💡
- Foster a community-driven approach to virtual event management. 🤝
- Be the go-to event management platform for pre-production, production, and post-production 🎯

<!-- ## Setup Quickstart ⚡ -->
<!---->
<!-- While we are not currently accepting external code contributions, we provide this setup information for transparency and future reference: -->
<!---->
<!-- ### Prerequisites 📋 -->
<!---->
<!-- - Node.js (v18 or above) 🟢 -->
<!-- - Yarn 🧶 -->
<!-- - Git 🐙 -->
<!---->
<!-- ### Environment Variables 🔐 -->
<!---->
<!-- Create a `.env` file at the root of the project and include the following variables: -->
<!---->
<!-- ```bash -->
<!-- # Session secret key -->
<!-- SESSION_SECRET=Generate key: "openssl rand -base64 64" -->
<!---->
<!-- # WalletConnect Project ID -->
<!-- NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID=your_walletconnect_project_id_here -->
<!---->
<!-- # Infura Project ID -->
<!-- NEXT_PUBLIC_INFURA_ID=your_infura_project_id_here -->
<!---->
<!-- # Sanity Studio API Key -->
<!-- NEXT_PUBLIC_STUDIO_API_KEY=your_Livepeer_studio_api_key_here -->
<!---->
<!-- # Service Account Private Key for server-to-server interactions -->
<!-- SERVICE_ACCOUNT_PRIVATE_KEY=your_service_account_private_key_here -->
<!---->
<!-- # Service Account Email -->
<!-- SERVICE_ACCOUNT_EMAIL=your_service_account_email_here -->
<!---->
<!-- # Google API Key for services like Google Maps, etc. -->
<!-- GOOGLE_API_KEY=your_google_api_key_here -->
<!-- ``` -->
<!---->
<!-- Make sure to replace your_..._here with your actual environment variable values. -->
<!---->
<!-- ### Running Locally 🏃‍♂️ -->
<!---->
<!-- ```bash -->
<!-- git clone [email protected]:streamethorg/streameth-platform.git -->
<!-- cd streameth-platform -->
<!-- yarn install -->
<!-- yarn dev # or yarn dev -->
<!-- ``` -->

## Submitting Issues 🐛

We welcome issue submissions! If you encounter any bugs, have feature requests, or want to suggest improvements, please open an issue on our GitHub repository by clicking [here](https://github.com/streamethorg/streameth-platform/issues). Your feedback helps us improve StreamETH for everyone. 📝

## ⚠️ Important Notice for Developers 🛠️

**Please Note**: At this time, StreamETH is not open for external code contributions. We are a small team focused on delivering a high-quality product, and we are not currently set up to manage external developer code contributions effectively. We appreciate your interest, but we kindly ask that you refrain from submitting pull requests or expecting to contribute code at this stage. 🙏

However, we do welcome and appreciate [issue submissions!](https://github.com/streamethorg/streameth-platform/issues) If you encounter bugs, have feature requests, or want to provide suggestions, please feel free to open an issue. Your feedback is valuable to us. 🐛💡

We plan to support full developer contributions in the future once we feel ready to manage them properly. We will update this README when that time comes. Thank you for your understanding. 🌟

## Future Updates 🔮

We value the community's interest in our project. We will update this README when we are ready to welcome full external contributions. Thank you for your patience and support as we continue to develop and improve StreamETH. 🙌

Stay tuned for exciting updates and features! 🎉
16 changes: 12 additions & 4 deletions packages/app/.prettierrc.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,16 @@
{
"trailingComma": "es5",
"semi": false,
"semi": true,
"singleQuote": true,
"printWidth": 70,
"bracketSameLine": true,
"plugins": ["prettier-plugin-tailwindcss"]
"printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"bracketSpacing": true,
"bracketSameLine": false,
"arrowParens": "always",
"endOfLine": "lf",
"quoteProps": "as-needed",
"jsxSingleQuote": false,
"proseWrap": "preserve",
"htmlWhitespaceSensitivity": "css"
}
58 changes: 58 additions & 0 deletions packages/app/app/(legal)/data-request/components/createRequest.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
'use client';
import { CardContent } from '@/components/ui/card';
import { useAccount } from 'wagmi';
import { Button } from '@/components/ui/button';
import { LuMail } from 'react-icons/lu';

const CreateRequest = () => {
const { address } = useAccount();

const handleEmailClick = () => {
const subject = encodeURIComponent('Request for Personal Data');
const body = encodeURIComponent(`Dear StreamETH Support,
I would like to request all my personal data saved by StreamETH.
My login address is: ${address || 'Unknown'}
Please provide me with the following information:
[Please specify what personal data you are requesting]
Thank you for your assistance.
Best regards,
[Your Name]`);

window.location.href = `mailto:[email protected]?subject=${subject}&body=${body}`;
};

return (
<CardContent className="space-y-4">
<h2 className="text-2xl font-bold">Request Your Personal Data</h2>
<p className="text-sm text-gray-600">
Please click the button below to email [email protected] with your
request:
</p>
<ul className="space-y-2 text-sm list-disc list-inside text-gray-600">
<li>
Your login address:{' '}
<span className="font-mono">{address || 'Not connected'}</span>
</li>
<li>Specify what personal data you are requesting</li>
</ul>
<p className="text-sm text-gray-600">
We will send an email confirmation that we received your request. We
will then follow up with a zip file containing all your personal data
saved on StreamETH.
</p>

<Button onClick={handleEmailClick} variant={'primary'} className="w-full">
<LuMail size={20} className="mr-2" />
Compose Email
</Button>
</CardContent>
);
};

export default CreateRequest;
38 changes: 38 additions & 0 deletions packages/app/app/(legal)/data-request/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
'use server';

import { Card, CardTitle, CardFooter } from '@/components/ui/card';
import Image from 'next/image';
import Footer from '@/components/Layout/Footer';
import AuthorizationMessage from '@/components/authorization/AuthorizationMessage';
import CheckAuthorization from '@/components/authorization/CheckAuthorization';
import CreateRequest from './components/createRequest';

const DataRequest = async () => {
const year = new Date().getFullYear();

const isAuthorized = await CheckAuthorization();
if (!isAuthorized) {
return <AuthorizationMessage />;
}

return (
<div className="flex flex-col min-h-screen">
<div className="flex flex-grow justify-center items-center">
<Card className="flex flex-col justify-between p-5 my-5 w-full max-w-4xl bg-gray-100">
<CardTitle className="mb-6 ml-4">
<Image
src={'/logo.png'}
alt={'StreamETH logo'}
width={50}
height={50}
/>
</CardTitle>
<CreateRequest />
</Card>
</div>
<Footer active={'data_request'} />
</div>
);
};

export default DataRequest;
31 changes: 15 additions & 16 deletions packages/app/app/(legal)/privacy/page.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import { Card, CardTitle, CardFooter } from '@/components/ui/card'
import { promises as fs } from 'fs'
import Image from 'next/image'
import Footer from '@/components/Layout/Footer'
import Markdown from 'react-markdown'
import remarkGfm from 'remark-gfm'
import { Card, CardTitle, CardFooter } from '@/components/ui/card';
import { promises as fs } from 'fs';
import Image from 'next/image';
import Footer from '@/components/Layout/Footer';
import Markdown from 'react-markdown';
import remarkGfm from 'remark-gfm';

const Terms = async () => {
const year = new Date().getFullYear()
const Privacy = async () => {
const year = new Date().getFullYear();
const file = await fs.readFile(
process.cwd() + '/public/legal/privacy.md',
'utf8'
)
);

return (
<div>
Expand All @@ -27,18 +27,17 @@ const Terms = async () => {
</CardTitle>
<Markdown
remarkPlugins={[remarkGfm]}
className="prose prose-sm my-5 max-w-full p-4">
className="prose prose-sm my-5 max-w-full p-4"
>
{file}
</Markdown>
</div>
<CardFooter>
© {year} StreamETH International B.V.
</CardFooter>
<CardFooter>© {year} StreamETH International B.V.</CardFooter>
</Card>
</div>
<Footer active={'privacy'} />
</div>
)
}
);
};

export default Terms
export default Privacy;
29 changes: 14 additions & 15 deletions packages/app/app/(legal)/terms/page.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import { Card, CardTitle, CardFooter } from '@/components/ui/card'
import { promises as fs } from 'fs'
import Image from 'next/image'
import Footer from '@/components/Layout/Footer'
import Markdown from 'react-markdown'
import remarkGfm from 'remark-gfm'
import { Card, CardTitle, CardFooter } from '@/components/ui/card';
import { promises as fs } from 'fs';
import Image from 'next/image';
import Footer from '@/components/Layout/Footer';
import Markdown from 'react-markdown';
import remarkGfm from 'remark-gfm';

const Terms = async () => {
const year = new Date().getFullYear()
const year = new Date().getFullYear();
const file = await fs.readFile(
process.cwd() + '/public/legal/terms.md',
'utf8'
)
);

return (
<div>
Expand All @@ -27,18 +27,17 @@ const Terms = async () => {
</CardTitle>
<Markdown
remarkPlugins={[remarkGfm]}
className="prose prose-sm my-5 max-w-full p-4">
className="prose prose-sm my-5 max-w-full p-4"
>
{file}
</Markdown>
</div>
<CardFooter>
© {year} StreamETH International B.V.
</CardFooter>
<CardFooter>© {year} StreamETH International B.V.</CardFooter>
</Card>
</div>
<Footer active={'terms'} />
</div>
)
}
);
};

export default Terms
export default Terms;
Loading

0 comments on commit 106333b

Please sign in to comment.