-
Notifications
You must be signed in to change notification settings - Fork 151
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3 from icemc/scala_ideas
Added scala ideas for GSOC 2024
- Loading branch information
Showing
3 changed files
with
108 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) => <IdeaLayout meta={meta} {...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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) => <IdeaLayout meta={meta} {...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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) => <IdeaLayout meta={meta} {...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) |