Skip to content

Instantly share code, notes, and snippets.

@nshanji
Last active January 25, 2021 12:11
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nshanji/340f03ae33ed26aba621fbebe72dbcb4 to your computer and use it in GitHub Desktop.
Save nshanji/340f03ae33ed26aba621fbebe72dbcb4 to your computer and use it in GitHub Desktop.
Google Summer of Code 2020 Submission

Agora Web Frontend and REST API

Student : Nshanji Hilary Ndzi

Organisation : AOSSIE

Links

Agora Web

Agora Web is a platform for managing elections. It makes use of the Agora library which is used to count votes and provide election results. It is imperative such a platform should follow modern day’s standards which entails having a clean design and wonderful user experience and should also be able to securely keep users private information. The aim of this is project is thus to enhance the API with new features and provide a brand new user interface for the frontend with great user experience.

Deep view into the technology.

This project is created using play framework 2.6 seeds template.

These are some of the main technologies, we have used in the project.

Merge Requests

  1. Merge request !1 - Improved CI/CD script.: - status Merged

    • Improved the CI/CD script to test and deploy the application to Heroku
  2. Merge request !2 - Upgraded to play 2.7.5 and added swagger specs: - status Merged

    • Upgraded old play framework app from version 2.6 to 2.7.
    • Integrated swagger UI
  3. Merge request !3 - Implemented refresh token functionality - Status: Merged

    • Implemented refresh token functionality
    • Application now provides a refresh token that can be used to get a new access token.
  4. Merge request !4 - Redesigned Reset password email - Status: Merged

    • Redesigned Reset password email
  5. Merge request !5 - Redesigned Welcome email - Status: Merged

    • Redesigned welcome email and Signup email
  6. Merge request !6 - Redesigned Activate Account Email- Status: Merged

    • Redesigned activate account email
  7. Merge request !7 - Documentation - Status: Pending

    • Improved readme file and included documentation about my GSOC work

Agora Frontend

This part of the project was to redesign the frontend for the Agora platform. After a prototyping the frontend with my mentor which took us some time, I went ahead and designed the required components. Below are the components that we described

Use case modeling

I have identified the following tasks in the project at the starting of the project.

  1. Interface for user signup and login with email base accounts - Done
  2. Interface for user login using social media account - Done
  3. Interface for user to change password for email based accounts - Done
  4. Interface for user to logout - Done
  5. Interface for user to create and schedule Election. - Pending
  6. Interface for user to edit Election. - Pending
  7. Interface for user to delete the Election. - Pending
  8. Interface for election creator to invite the voters to vote for the Election. - Pending
  9. Interface for voters to vote the Election. - Pending
  10. Interface for election results - Pending

Deep view into the technology.

This project is created using Angular 9. It makes use of various open source libraries available for angular 6. Some of which are listed bellow

We started working on the frontend at the beginning of the third phase of GSOC. My mentor and I created a prototype of the new frontend design using wireframes. At this phase getting things right was crusial so this took us a little more time than expected. I went ahead and designed the required components needed to create the frontend at least the basic blocks such as cards, forms, counters etc.

After which we worked on user specific actions such as viewing profile information, updating profile, changing their password and user logout. We created interfaces for the actions described above

The frontend is still under progress and this will take us a little more time to get it through. The current Covid-19 pandemic has affected my development through out GSoC since our university exams sometimes ran during this GSoC coding period. As discussed with my metor we will eep on working on the frontend even after GSoC. As it is a very important part of the application and this year we want to do it right and probably maintain the design for the first public release of the application.

I would like to thank every AOSSIE member, especially my mentors, Abanda Ludovic, Thuvarakan Tharmarajasingam, Bruno Woltzenlogel Paleo for being so nice and helpful. I have learnt a lot in the past 3 months and it has been a great experience to be a part of this wonderful community.

Merge Requests

  1. Merge request !1 - Init repository with angular universal and PWA settings: - status Merged

    • Init repository with angular 9 universal and PWA settings
  2. Merge request !2 - Implemented Signup and Signin- status Merged

    • Created routing and initialized all required components, models, pipes and services
    • Implimented Signup and Signin
  3. Merge request !3 - Implement Dashboard - Status: Open

    • Implemeting Dashboard
  4. Merge request !4 - Implemented CI/CD - Status: Open

    • Added gitlab ci/cd script for test and deployment to Heroku
  5. Merge request !5 - Documentation - Status: Pending

    • Improved readme file and included documentation about my GSOC work
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment