mirror of https://gitlab.com/ecentrics/concordia
Apostolos Fanakis
4 years ago
10 changed files with 109 additions and 15 deletions
@ -0,0 +1,35 @@ |
|||
# About Concordia |
|||
|
|||
## What |
|||
|
|||
Concordia is a forum platform (remember forums? 🤩) that focuses on user privacy and direct democratic voting. It is a |
|||
FOSS distributed via its Gitlab [repository][concordia-repository] and Docker [repository][concordia-docker-hub] under |
|||
the [MIT][concordia-license] license. |
|||
|
|||
## Why |
|||
|
|||
The value of privacy, freedom of speech and democracy are diminishing in modern software. Even more so in social media |
|||
platforms. Users are called to select between being the product of companies that sell their personal information and |
|||
being shut out of the modern, digital society. |
|||
|
|||
Concordia, much like other projects of this kind, provides an alternative to this predicament. |
|||
|
|||
## How |
|||
|
|||
Concordia uses decentralized technologies, namely the Ethereum blockchain and its smart contracts, as well as the |
|||
distributed database OrbitDB that's based on the decentralized network IPFS. These technologies make Concordia |
|||
impervious to censorship and guaranty the immutability of user information and anonymity while enabling user |
|||
authentication that makes trusted, direct voting possible. |
|||
|
|||
You can read more about the technological stack in Concordia's [whitepaper][concordia-whitepaper]. |
|||
|
|||
--- |
|||
|
|||
Developed by [apostolof][devs-apostolof-profile], [ezerous][devs-ezerous-profile] |
|||
|
|||
[concordia-repository]: https://gitlab.com/ecentrics/apella |
|||
[concordia-docker-hub]: https://hub.docker.com/repository/docker/ecentrics/apella-app |
|||
[concordia-license]: https://gitlab.com/ecentrics/apella/-/blob/master/LICENSE.md |
|||
[devs-apostolof-profile]: https://gitlab.com/Apostolof |
|||
[devs-ezerous-profile]: https://gitlab.com/Ezerous |
|||
[concordia-whitepaper]: https://whitepaper.concordia.ecentrics.net |
After Width: | Height: | Size: 4.5 KiB |
@ -0,0 +1,43 @@ |
|||
import React, { |
|||
memo, useEffect, useState, |
|||
} from 'react'; |
|||
import ReactMarkdown from 'react-markdown'; |
|||
import { Container, Image } from 'semantic-ui-react'; |
|||
import AboutMd from '../../assets/About.md'; |
|||
import appLogo from '../../assets/images/app_logo_circle.svg'; |
|||
|
|||
const targetBlank = () => ({ href, children }) => ( |
|||
<a href={href} target="_blank" rel="noopener noreferrer"> |
|||
{children} |
|||
</a> |
|||
); |
|||
|
|||
const About = () => { |
|||
const [aboutMd, setAboutMd] = useState(''); |
|||
|
|||
useEffect(() => { |
|||
fetch(AboutMd) |
|||
.then((response) => response.text()) |
|||
.then((text) => { |
|||
setAboutMd(text); |
|||
}); |
|||
}, []); |
|||
|
|||
return ( |
|||
<Container id="about-container"> |
|||
<div style={{ textAlign: 'center' }}> |
|||
<Image src={appLogo} size="small" centered /> |
|||
{`v${process.env.REACT_APP_VERSION}`} |
|||
</div> |
|||
<ReactMarkdown |
|||
source={aboutMd} |
|||
renderers={{ |
|||
link: targetBlank(), |
|||
linkReference: targetBlank(), |
|||
}} |
|||
/> |
|||
</Container> |
|||
); |
|||
}; |
|||
|
|||
export default memo(About); |
Loading…
Reference in new issue