Student : Nshanji Hilary Ndzi
Organisation : AOSSIE
- Projects :
- Agora Web API: https://gitlab.com/aossie/Agora-Web
- Agora Web Frontend: https://gitlab.com/aossie/Agora-web-frontend
- Live demo of the Projects :
- Agora Web API: http://agora-rest-api.herokuapp.com/
- Agora Web Frontend: http://agora-frontend.herokuapp.com/
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.
This project is created using play framework 2.6 seeds template.
These are some of the main technologies, we have used in the project.
- sbt - Build tool for Scala.
- Play framework - The Web framework is used to build the project.
- Swagger Play - Plugin that provides swagger documentation for play framework
- Scala - Language which is used to write the server site.
- MongoDB – Database used for the project.
- Silhouette Documentation - Handle the user authentication and authorization for the project.
- Play2-ReactiveMongoDB - Used to connect with the MongoDB
- specs2 - Used to unit tests.
-
Merge request !1 - Improved CI/CD script.: - status Merged
- Improved the CI/CD script to test and deploy the application to Heroku
-
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
-
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.
-
Merge request !4 - Redesigned Reset password email - Status: Merged
- Redesigned Reset password email
-
Merge request !5 - Redesigned Welcome email - Status: Merged
- Redesigned welcome email and Signup email
-
Merge request !6 - Redesigned Activate Account Email- Status: Merged
- Redesigned activate account email
-
Merge request !7 - Documentation - Status: Pending
- Improved readme file and included documentation about my GSOC work
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
I have identified the following tasks in the project at the starting of the project.
- Interface for user signup and login with email base accounts - Done
- Interface for user login using social media account - Done
- Interface for user to change password for email based accounts - Done
- Interface for user to logout - Done
- Interface for user to create and schedule Election. - Pending
- Interface for user to edit Election. - Pending
- Interface for user to delete the Election. - Pending
- Interface for election creator to invite the voters to vote for the Election. - Pending
- Interface for voters to vote the Election. - Pending
- Interface for election results - Pending
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
- Node.js - Provides the package manager used in this project
- Agular CLI - Command line tool required to work with application
- Angular 6 - The web framework used to build this project
- Bootstrap - HTML and CSS frontend framework
- Angularx-social-login - Social login library for angular applications
- Agular material design - Material design for angular applications
- Font-awesome - Provides beautiful icon used in the projects
- Material icons - Material design icons for angular applications
- ng-pick-datetime - DateTime picker library used to select date and time
- sweetalert2 - Notification library used to give feedback to the user
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 request !1 - Init repository with angular universal and PWA settings: - status Merged
- Init repository with angular 9 universal and PWA settings
-
Merge request !2 - Implemented Signup and Signin- status Merged
- Created routing and initialized all required components, models, pipes and services
- Implimented Signup and Signin
-
Merge request !3 - Implement Dashboard - Status: Open
- Implemeting Dashboard
-
Merge request !4 - Implemented CI/CD - Status: Open
- Added gitlab ci/cd script for test and deployment to Heroku
-
Merge request !5 - Documentation - Status: Pending
- Improved readme file and included documentation about my GSOC work