diff --git a/src/pages/ideas/2024/agora-api.mdx b/src/pages/ideas/2024/agora-api.mdx new file mode 100644 index 0000000..42ae20c --- /dev/null +++ b/src/pages/ideas/2024/agora-api.mdx @@ -0,0 +1,36 @@ +import { IdeaLayout } from '@/components/IdeaLayout' + +export const meta = { + title: 'Agora Vote API V2', + description: + 'Agora API is a vote counting API written using Scala 2 and Play Framework.', +} + +export default (props) => + +### Project Duration: 350 hrs + +## About: + +Agora API is a vote counting API that powers applications such as Agora Web App, Agora Android and Agora IOS. It is written in Scala and uses the the Agora vote counting library under hood. +Agora API V1 has been around for quite some time now and is powered by the Play Framework, with V2 we aim at increasing performance by moving to a newer framework (ZIO 2) and adding more features to the API + +## Deliverables: + +- Rewrite application using Scala 2 (or probably Scala 3) and ZIO +- Implement all provided API endpoints (a swagger doc will be provided). +- Dockerize the application for easy deployment to cloud +- Deploy application to cloud + +## Required Skills: + +- Scala +- Functional programming +- ZIO 2 +- JWT & OAUTH2 Authentication +- REST API development + +## Mentors: + +1. [Abanda Ludovic](https://www.github.com/icemc) +2. [Bomen Derick](https://www.github.com/ponsipi) \ No newline at end of file diff --git a/src/pages/ideas/2024/agora-library.mdx b/src/pages/ideas/2024/agora-library.mdx new file mode 100644 index 0000000..61ed305 --- /dev/null +++ b/src/pages/ideas/2024/agora-library.mdx @@ -0,0 +1,35 @@ +import { IdeaLayout } from '@/components/IdeaLayout' + +export const meta = { + title: 'Agora Library', + description: + 'Agora is a high performance vote counting library written in Scala.', +} + +export default (props) => + +### Project Duration: 175 hrs + +## About: + +Agora is a high performance vote counting library written in Scala. The library currently supports several vote counting algorithms, however it quite outdated and doesn't have support for Scala 3. +We would love to make the Ballot and Candidate data types more generic such that library users should be able to define their own ballots and candidates based on these generic types and also include support for Scala 3. This will imply rewriting a huge portion of the application to support these changes. + +## Deliverables: + +- Rewrite library using Scala 2.13 and provide support for Scala 3.x +- Make Candidate and Ballot generic +- Implement tie resolution algorithms and add possibility for users to include theirs +- Release application +- Publish the library for Scala 2.12, 2.13 and 3 on Sonatype. + +## Required Skills: + +- Scala 2 and 3 +- Voting +- Library development + +## Mentors: + +1. [Abanda Ludovic](https://www.github.com/icemc) +2. [Bomen Derick](https://www.github.com/ponsipi) \ No newline at end of file diff --git a/src/pages/ideas/2024/slagora.mdx b/src/pages/ideas/2024/slagora.mdx new file mode 100644 index 0000000..3ef81f8 --- /dev/null +++ b/src/pages/ideas/2024/slagora.mdx @@ -0,0 +1,37 @@ +import { IdeaLayout } from '@/components/IdeaLayout' + +export const meta = { + title: 'Slagora', + description: + 'Slagora is a Slack based voting application powered by Agora. It enables organizations within Slack to carry out Polls and Elections.', +} + +export default (props) => + +### Project Duration: 175 hrs + +## About: + +Slagora is a Full stack Slack based voting application built on top of the Play Framework backed by Scala and JavaScript. The current application uses play 2.7.5 which is quite outdated. +We would love to develop a DSL for messages between Slack and Slagora, upgrade the application to use the newer Slack API, update to a newer version of Play and move the frontend code to either React or Angular. + +## Deliverables: + +- Update application to Play 2.9 +- Update to new Slack API +- Develop DSL for Slagora-Slack interaction +- Update frontend to use either React or Angular frameworks +- Update to new Slack API + +## Required Skills: + +- Scala +- Play Framework +- OAUTH2 authentication +- Slack API +- Angular or React development + +## Mentors: + +1. [Bomen Derick](https://www.github.com/ponsipi) +2. [Abanda Ludovic](https://www.github.com/icemc)