baseline
baseline copied to clipboard
Baseline Calender
Description
This pull request completes Milestone 1 and Milestone 2 of (https://github.com/eea-oasis/baseline-blips/issues/24) which involves creation of backend APIs and circom circuit.
https://github.com/eea-oasis/baseline/tree/feature-calendar-BLIP/examples/calendar
Baseline Calendar is an example project which involves a privacy centric way of scheduling appointments. More details can be found here
Related Issue
https://github.com/eea-oasis/baseline-grants/issues/70
Motivation and Context
To create a fully working implementation of baseline that can be used as another example of the power baseline has.
How Has This Been Tested
All the API endpoints have been tested manually, the circuit has been tested with custom inputs.
Screenshots (if appropriate)
Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] Request to be added as a Code Owner/Maintainer
Checklist
- [x] My code follows the code style of this project.
- [x] My change requires a change to the documentation.
- [x] I have updated the documentation accordingly.
- [x] I have added tests to cover my changes.
- [x] All new and existing tests passed.
- [x] I commit to abide by the Responsibilities of Code Owners/Maintainers.
I have created a list of tasks for this project @Manik-Jain / @skosito , please review under the tasks that are marked as completed, the others are still a work under progress. Although when you run the code the WIP code does not hamper the working functionality.
Backend Tasks
- [x] User Creation API
- [x] User Authentication API
- [x] Fetch user via ID API
- [x] User Set Time Availability API
- [ ] Schedule Appointment API
Privacy Tasks
- [x] Circom proof to verify appointment times
- [x] Setup [Ceremony of Tau]
- [x] Prove (SnarkJS) with wasm / custom input.json
- [x] Solidity Smart contracts consumption via API [proof]
- [x] Solidity Smart contracts consumption via API [verify]
Frontend Tasks
- [x] Create Login Page
- [x] Create Scheduling Page
- [ ] Set an appointment
- [ ] Appointment Page
@vaibhavgeek great work overall, but smaller PRs, and code relevant to the current PR would be much more easy to review.
The following project has been done as specified in the scope of the grant, a demo video has been uploaded (https://www.youtube.com/watch?v=_eVsyjWFXhw) which showcases Baseline Calendar.
The code can further reused for multiple different application which require membership proof.
Link to technical code walkthrough - https://www.youtube.com/watch?v=Tp6tShwglaw
@vaibhavgeek Could you please push your latest changes? I see the comments, but not the updated code. Probably you missed to push your changes. The last commit was made on October 24, 2022 to remove console logs.
https://github.com/eea-oasis/baseline/pull/480/commits
@Manik-Jain I have made changes to the files requested in the frontend as well, thanks for reviewing the pull request in detail.