getparthenon / monorepo Goto Github PK
View Code? Open in Web Editor NEWMonorepo for Parthenon development
Home Page: https://getparthenon.com
License: GNU General Public License v3.0
Monorepo for Parthenon development
Home Page: https://getparthenon.com
License: GNU General Public License v3.0
Having complex data structures within a relational database can create long, complex queries that hurt SQL. It is common for data to be relational in nature so suited for a SQL database while needing to be searchable in a highly performant nature.
This problem can become more apparent when using microservices and the increase latency involed.
The common solution to this problem is to mirror the data into an Elasticsearch database that is read-only. This allows for the fast searching and fetching of the data while allowing the rest of the system to use the data as it wants.
This feature would need:
More information can be found on this problem at https://getparthenon.com/blog/how-to-scale-complex-data
2.0
The column name for updated at is wrong in orm and odm
Look at the config and run migrations.
No response
No response
Companies need to allow payment via Adyen
No response
No response
Sometimes email confirmation isn't needed or wanted.
Provide an option to disable email confirmation requirement
parthenon:
user:
enabled: true
email_confirmation: false
Users drop off during the sign up process due to not getting the email, the email going into their spam, getting disinterested, etc. Companies wish to improve their onboarding to improve their activation rates.
Make it possible to configure Parthenon to log users in directly after signing up.
No response
Creating forms is generally mundane and repetitive and creating your own form elements is time-consuming.
Provide an easy and extendable Vue Form library that allows developers to quickly build highly interactive forms.
<Form>
<TextField v-model="name" label="Name" />
<PasswordField v-model="password" label="password" min-length="8" max-length="32" />
<SubmitButton>Submit</SubmitButton>
</Form>
As a company I need to be able to provide Payments via PayPal
No response
No response
Many companies and indie hacker developers want to use a merchant of record to handle compliance and tax matters.
Add support for the merchant of record provider Transaction.Cloud.
No response
Sometimes a company will want to refund a payment from a customer for various reasons.
Parthenon should provide a programmable way to refund payments as well as a section within Athena.
The Refund system should:
The data the refund system should make available easily.
No response
Allow users to sign up and login via their Google accounts
No response
Allow users to sign up and online via Twitter
No response
Sometimes it's important for businesses to know who changed what and when as well as knowing why.
Provide an easy-to-use Audit Log system that logs when an object is changed and who changed it.
No response
It is common for applications to search for data based on geolocation. This can become slow and complex due to the fact the search is a secondary issue.
Provide an easy-to-use solution that provides the ability to have geosearch functionality on data.
Search types required:
No response
When building an application over multiple years, there ends up being a large number of email templates being used. These templates end up being defined throughout the codebase. When it's time to switch to a different email service provider, for example switching from MailGun to Sendgrid, it can become a time-consuming task to find all the places these templates are defined and change them.
Create a TemplateEmail
abstract class that has a method that returns the name of the template id. This would allow for the creation of classes that define the template that is being used. These classes could be used when sending emails. And then the task of changing the template ids from one email service provider to another becomes a trivial task as it's just a case of going through a folder and updating all the classes in the folder or, at worse, finding all classes that extend the abstract class.
No response
When building an application that accepts payments it's often required to use multiple payment gateways.
PaymentManager
SubscriptionManager
InvoiceManager
RefundManager
No response
Companies often run into the problem where their accountancy numbers are all over the place, and there is no real source of truth.
Provide the ability to have Accountancy Software Integration
Must provide an integration layer with:
No response
Sometimes users sign up with a fake email, not realising there is an email confirmation. Sometimes it is preferable to allow a user to sign in with an unconfirmed email while having limited features.
Provide an option to allow unconfirmed logins and provide an option to configure which features are allowable with
Provide code for feature flagging if the user is confirmed or not.
parthenon:
user:
enabled: true
email_confirmation: true
login_without_confirmation: true
confirmed_features:
- email_send
It's common for companies to need to export data for their users to use via various formats. CSV/Excel/etc.
There are multiple ways of doing this. In foreground request process or background process.
One is providing the export file during a request and returning the file. This works at lower scales but often results in hacks as they grow. Generally either being increasing memory or timeouts. Both of which result in errors before being fixed and the same fix being done multiple times. The reality is, once it goes to a certain scale, it needs to be done in the background.
Once it's being done in the background, there are two options:
Provide an export system that supports multiple file types.
File Type support:
Export types:
Download page support:
No response
In complex billing scenarios, it's required to provide different rates for items depending on various scenarios.,
Provide an easy-to-use to provide the ability to invoice items at various rates.
No response
Not all systems are SaaS/subscription based. It is required for many companies for their system to request payment from saved details upon request.
Parthenon should provide an easy to use way to charge a customer
No response
Sometimes it's required to issue refunds in bulk due to a large-scale error
Provide the ability to run a command that allows for defining the rules for finding the payments that are to be refunded and refund them.
No response
Displaying tables of data is mundane and repetitive.
Provide a flexible and extendable Vue library code that will allow for the easy and quick development of table views.
<TableView :data="data">
<Column field="name" label="Name" />
<Column field="email" label="email" :sortable="true" />
<ButtonGroup>
<Button route-name="edit" param="id">Edit</Button>
</ButtonGroup>
</TableView>
The ability to handle payouts to partners based is a common problem.
WIP
No response
There are many cases where a feature should not be enabled but can be deployed:
Parthenon should provide a feature flag component that allows developers to have feature flags.
There should be support for:
For Parthenon's functionality, there should be an Athena section that allows for the managing of feature flags.
Feature flags should be tooglable for the following rules:
No response
Employees want to see events relating to a specific object.
Logging tools can be intimidating as well as hard to navigate.
Provide the ability to add the ability to fetch and view logs relating to an object directly from the Athena object view page.
It would need to be able to:
Logging Systems to Support:
Possbile idea to support multiple
interface LogRepositoryInterface
{
/**
* @return LogResult[]
*/
public function search(SearchRules $searchRules) : array;
}
Possible way to support the ability to find logs
interface SearchRules
{
public function addRule(SearchRule $searchRule): void;
public function fetchCompiledRules(): mixed;
}
Possible way of supporting mapping data
interface LogMapperInterface
{
public function mapData(mixed $data) : array
}
2.1.1
Error while installing parthenon, when using any bin/console command
"Fatal error: Declaration of Parthenon\Common\Logging\Monolog\ProcessIdProcessor::__invoke(array $record): array must be compatible with Monolog\Processor\ProcessorInterface::__invoke(Monolog\LogRecord $record): Monolog\LogRecord in [PATH]\vendor\parthenon\parthenon\src\Common\Logging\Monolog\ProcessIdProcessor.php on line 27"
Same issue would happen with ExceptionProcessor, RequestProcessor and SessionProcessor
They all use array as a type for their __invoke method when LogRecord object is required by the interface
I just installed parthenon with the composer create-project command
No response
Tested on PHP 8.2 and 8.1
Allow users to do single sign-on using Slack as a login provider.
No response
It is required for support staff who don't have access to the payment provider to be able to issue refunds or help with providing information about payments
There should be a section attached to a customer's Athena view page that shows their payment history.
The section should provide:
No response
When uploading files it's often required to read or delete the files. The uploader class should handle this.
No response
No response
Allow users to sign up and login via Facebook
No response
Allow users to sign up and login via Github
No response
Companies would like to know more information about their payments in regards to their own system.
Parthenon should provide the ability to see and view payments with Athena
The section should provide:
No response
For complex applications, objects may have state and they may have actions that need to be trigger when a state is reached or left.
For example:
To be defined later.
No response
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.