givebloodorg / doesangue-core Goto Github PK
View Code? Open in Web Editor NEWOnline platform that connects people interested in blood donation
Home Page: https://givebloodorg.github.io
License: MIT License
Online platform that connects people interested in blood donation
Home Page: https://givebloodorg.github.io
License: MIT License
In last steps, i was keeping the platform installation automated with every push to this repo. But isn't the right way, because this is only the core project and not the platform itself. So, in next commits/releases, we will remove everything about the doesangue.me app and keep only what is needed for development.
Definir a estrutura de arquivos, pastas, funcionalidades e branching da plataforma de forma a se seguir um padrão para o desenvolvimento. O que ajudaria em manter o código padronizado e limpo (💯) e facilitar os desenvolvedores, designer/webdesigners que queiram colaborar no desenvolvimento poder facilmente entender e se adaptar ao WorkFlow.
Definir padrões de código baseado nos guias do PSR
Definir estrutura de ficheiros específicos (Backend, Frontend, assets) para facilitar na manutenção.
🆘 🗺️
Allow account creation only for people who have been invited, to prevent accounts from being created in locations that the platform still does not support, or to create multiple accounts without verification.
Create InvitationRequestsController
Create invitation_requests
table
Create InvitationRequestEmail
Using one of most great (new) Laravel features, we need to create both singular and plural resources for campaigns
and donors
.
CampaignResource (returns the information a specific campaign)
CampaignCollection (returns all campaigns)
UserCollection (returns all users/donors)
UserResource (returns all donors)
For v1.0.0 release we defined as a necessary to have at least 30% of visual interface created/developed (in this case, the layout, logo and banners).
Other interfaces or features can be be added later on next releases.
Because sometimes a user need to Stay updated or follow another user (or maybe a blood bank), so i think this feature will be very helpful.
To do that we need to create followers
table where we will define a user_id
(the user that logged in/the follower) and follow_id
(the user that will be followed).
Also we need to have a FollowerController
where we will have our methods to follow, unfollow users, check how many followers and how many following.
Create Follow
Model and migration
Add relation with users
and followers
tables
Create FollowController
follow
featureunfollow
featureGiven the benefits of GraphQL would be a good option to recreate a version of the GraphQL-based API?.
Because we are using Laravel we will use folklore/graphql a very good GraphQL implementation for Laravel.
Query's
, Type's
, Mutation's
Query
DonorsQuery
CampaignsQuery
BloodGroupsQuery
MyProfileQuery
Type
DonorsType
CampaignsType
BloodGroupsType
Mutation
UpdateProfileMutation
RegisterDonorMutation
CreateCampaignMutation
For now we're using Laravel 5.4 but i'm planning to upgrade to Laravel 5.5 LTS
, the version comes with a lot's (great) of new features like apiResource and others..
This issues only servers to register the progress of this upgrade..
Olá @JoseCage, vi sua postagem no startupbrasil.
Já que a plataforma será sem fins lucrativos, pensei na possibilidade de ajudar no desenvolvimento da plataforma, mas gostaria de saber quais tecnologias serão usadas.
abs
For this step i want to upgrade to Laravel5.4 and also remove elixir, frontend assets, views.
Update composer packages to 5.4 support
Remove resources/assets/js/components/ and resources/assets/sass
Move the tests for new laravel tests structure
remove gulpfile.js to use webpack.min.js
When a new User create an account give him the option to confirm their account via sms (code) or via email with confirmation link or code..
Create confirmations
table to log accounts confirmations and store/verify confirm-- codes.
Create Models\Confirmations.php
(model) to handle relationship with User model.
Integrate Twilio to send sms with code to User.
Add new feature for blood banks and hospitals and donors health checkup.
v1/hospitals
v1/hospitals/{ID}
/v1/hospitals/ID}/checkups
(Get all checkups done in a specific hospital/blood bank)/v1/hospitals/{ID}/checkups
(Register a new donors check-up)/v1/hospitals/{ID}/checkups/{donor}
(Get all checkup logs by a specific donor)/v1/hospitals/{ID}/checkups/{donor}
(Get the checkup details by a specific donor)Query's
HospitalsQuery
HospitalProfileQuery
CheckupQuery
Type's
HospitalsType
CheckupType
Mutation's
RegisterHospitalMutation
UpdateHospitalMutation
NewCheckupMutation
VerifyHospitalMutation
Implementar um painel onde o usuário poderá controlar as suas atividades, pontos (vulgo scores), atualizar informações pessoais e demais funcionalidades que se possa vir a implementar.
Layout/Protótipo da interface
Implementar as funcionalidades do Backend no layout
Escolher o Framework/Biblioteca css (Bootstrap vs Material Design vs Foundation)
Página global onde todo utilizador poderá acompanhar as atividades recentes de outros utilizadores (doações, pontos/scores adquiridos na plataforma, destacar sugestões de doadores para seguir/acompanhar) entre outras funcionalidades..
Criar o protótipo do layout principal da página
Filtros de sugestões (users to follow) e conteúdo exibidos na timeline para o usuário:
PS: Separar as funcionalidades por módulos(:package:) para melhor organização.
Considering that this project has a chance to become the official platform used by "Instituto Nacional de Sangue" (of Angola 🇦🇴 ) (National Institute of Blood) we really need to "rewrite" this project to adopt the new changes and future features like, check the last time the donor has been donated or how are the bloodstock in blood banks.
Some tasks to have this job done:
INS
as alias for Instituto Nacional de Sangue)Para a primeira versão funcional (v1.0.0) implementar algumas funcionalidades primordiais para o funcionamento do sistema de formas a poder lançar em produção.
Upgrade the project code base to a Laravel 7.* based API
Issue dedicada para organização de tarefas e ideias relacionado ao programa de Mentoria da comunidade AOSC.
For next release (v1.0.0
) the route will be completely rewritten (but pay attention: we will always be in v1
of our routes). For example, in current version the routes to add, update or delete campaigns are defined in public/global routes.
So instead of that we will separate some routes to be under /v1/me
prefix and keep only the routes /v1/campaigns
, /v1/donors
, /v1/campaigns/{id}/comments
and other routes non related to user directly.
Add new endpoints related to User (loggedin
)
v1/me
(Get information about the logged User)v1/me/followers
(User followers)v1/me/following
(others user that the current User is following)v1/me/donations
(User's donations)v1/me/donated
(User's received donations)v1/me/campaigns
(Get all campaigns created by the User)v1/me/campaigns
(Add a new campaign)v1/me/campaigns/{id}
(Update a campaign that User owns)v1/me/campaigns/{id}
(Delete a campaign that User owns)v1/me/notifications
(Check all User notifications, read
and unread
) v1/bloodtypes
(Returns all bloodtypes we have in our database)Authentication
v1/auth/logout
(Invalidate the token and destroy's User
session)v1/auth/password/recover
(Ask for a link to reset a password)v1/auth/password/reset/{token}
(After the User receives the link in his inbox he check if he can change the passwd
)This issue
/task is part of #38
Upgrade the project to the most recent Laravel version (5.8) 🚀
Implement a feature to add Push Notification with Firebase Cloud Messaging (FCM) using enniel/laravel-fcm-notification-channel package
Seria possível criar alguns Cards em Projects
para saber quais tarefas estão pendentes?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.