Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joaopcm/go-barber
✂️ a new version of customer management system, service providers and agenda for barber shops
https://github.com/joaopcm/go-barber
Last synced: 22 days ago
JSON representation
✂️ a new version of customer management system, service providers and agenda for barber shops
- Host: GitHub
- URL: https://github.com/joaopcm/go-barber
- Owner: joaopcm
- Created: 2020-05-13T20:59:15.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-09-21T22:14:19.000Z (over 3 years ago)
- Last Synced: 2024-12-22T05:29:39.840Z (about 1 month ago)
- Language: TypeScript
- Homepage:
- Size: 451 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GoBarber
---
### Mapping features
#### Forgot password
**RF**
- [x] The user should be able to recovery his password providing his email address;
- [x] The user should be able to receive an email with instructions to recovery his password;
- [x] The user should be able to reset his password;**RNF**
- [x] Use [Mailtrap](https://mailtrap.io/) to test mail in development environment;
- [x] Use Amazon SES to mail in production environment;
- [x] The mail must happens on background (background jobs);**RN**
- [x] The link sent by email to recovery password should expires in 2 hours;
- [x] The user must confirm his new password;#### Profile update
**RF**
- [x] The user should be able to update his profile (name, email and password);**RN**
- [x] The user should not be able to edit his email address to an already used email address;
- [x] The user must provide his old password to update his password;
- [x] The user must confirm his new password to update his current password;#### Provider panel
**RF**
- [ ] The user should be able to list all his appointments for a given day;
- [ ] The provider must receive a notification always when someone schedule with him;
- [ ] The provider should be able to see all non read notifications;**RNF**
- [ ] The appointments for a given day must be cached;
- [ ] The provider's notification must be storaged on MongoDB;
- [ ] The provider's notification must be send in real-time with socket.io;**RN**
- [ ] The notification must have a status like read or pending for the provider can manage it;#### Appointment schedule
**RF**
- [ ] The user should be able to list all registered providers;
- [ ] The user should be able to view all the days of a month with at least one available interval for a given provider;
- [ ] The user should be able to list all available intervals for a given specific day for a given provider;
- [ ] The user should be able to make a new schedule with a provider;**RNF**
- [ ] The providers index must be cached;**RN**
- [ ] Each schedule must have 1 hour of duration;
- [ ] The schedules should be available between 8am and 6pm (the first schedule at 8am and the last one at 5pm);
- [ ] The user can not schedule on an already scheduled interval;
- [ ] The user can not schedule on a past interval;
- [ ] The user can not schedule self services;---
### Principles, concerns and patterns
- Services;
- Repositories;
- Don't Repeat Yourself;
- Data Transfer Object;
- Dependency Invertion Principle;
- Single Responsability Principle;
- Keep It Simple & Stupid;
- DDD;
- Liskov Substitution Principle;
- Dependency Injection;
- Singleton;
- Controllers;
- TDD;
- Unit tests;
- Integration tests;