Giter VIP home page Giter VIP logo

doesangue-core's People

Contributors

dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar josecage avatar nazaretyma avatar pablolovera avatar scrutinizer-auto-fixer avatar sukuasoft avatar vinicius73 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

doesangue-core's Issues

Separate the platform from core project

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.

Estrutura e padrões da plataforma

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.

🆘 🗺️

Change the scope of registration from open to invited only

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.

Tasks

  • Create InvitationRequestsController

  • Create invitation_requests table

  • Create InvitationRequestEmail

Create API resources for campaigns and Users(donors)

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)

Visual identity and interfaces

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).

  • Views:
    • Feed/Timeline
    • Search page/Search results
    • User/Donor profile
    • Blood banks/hospitals profile (page)
    • Authentication pages,
      • Signup
      • Login
      • Password reset/recovery

Other interfaces or features can be be added later on next releases.

Implement a following/follower system

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

    • Add follow feature
    • Add unfollow feature

Move to GraphQL API?

Given 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.

* Steps to do that:

  • Create GraphQL Query's, Type's, Mutation's
    • Query

      • DonorsQuery
      • CampaignsQuery
      • BloodGroupsQuery
      • MyProfileQuery
    • Type

      • DonorsType
      • CampaignsType
      • BloodGroupsType
    • Mutation

      • UpdateProfileMutation
      • RegisterDonorMutation
      • CreateCampaignMutation

Upgrade to Laravel 5.5

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..

Qual arquitetura será usada?

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

Update composer packages to L5.4 and remove L5.3 structure

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

Handle account confirmation via email or sms

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.

Hospitals and Check-up management

Add new feature for blood banks and hospitals and donors health checkup.

Rest-API

  • Hospitals
  • Routes
    • v1/hospitals
    • v1/hospitals/{ID}
  • Features
    • Register a new hospital
    • Update hospital information
    • Checkups
      • Routes
        • GET: /v1/hospitals/ID}/checkups (Get all checkups done in a specific hospital/blood bank)
        • POST:/v1/hospitals/{ID}/checkups (Register a new donors check-up)
        • GET: /v1/hospitals/{ID}/checkups/{donor} (Get all checkup logs by a specific donor)
        • GET: /v1/hospitals/{ID}/checkups/{donor} (Get the checkup details by a specific donor)

GraphQL:

  • Query's

    • HospitalsQuery
    • HospitalProfileQuery
    • CheckupQuery
  • Type's

    • HospitalsType
    • CheckupType
  • Mutation's

    • RegisterHospitalMutation
    • UpdateHospitalMutation
    • NewCheckupMutation
    • VerifyHospitalMutation

User Dashboard

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)

News feed (activities)

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

    • Criar e dividir as áreas de conteúdo na página
    • Definir ícones e itens de cada coluna
  • Filtros de sugestões (users to follow) e conteúdo exibidos na timeline para o usuário:

    • Exibir sugestões baseado na localização do usuário
    • Sugerir organizações/centros em destaque com base nas organizações que o usuário já acompanha
    • Promover (destacar) solicitações de doação que exijam menos tempo para encontrar doadores.
    • Exibir badges recentemente conquistados pelo usuário como incentivo.

PS: Separar as funcionalidades por módulos(:package:) para melhor organização.

Rewrite the core to adopt new scopes and features

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:

  • Make a private API only for hospitals, blood donors, and INS (INS as alias for Instituto Nacional de Sangue)
  • Permits the a blood bank to share Donors data with others banks and hospitals

User registration and authentication with social network and email

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.

  • Cadastro e Autenticação por email e senha
    • Recuperação de senha
    • Solicitar reset da senha/conta
    • Validação de conta (se existe ou se os dados fornecidos são iguais ao armazenado)
  • Cadastro e Autenticação com rede social
    • Facebook
    • Twitter
    • Google

AOSC Mentoria 2023

Issue dedicada para organização de tarefas e ideias relacionado ao programa de Mentoria da comunidade AOSC.

API/Backend

  • Reescrever o core/backend para separação de conceitos e funcionalidades (Issue 57)
  • Notificações real-time com firebase Issue 73
  • Gestão dos hospitais e marcações/agendamentos de doação Issue 58
  • Mudar esquema da autenticação para "Apenas convidados/Lista de espera" (para validação) Issue 55

Site/Web app

Aplicação Mobile (Android/iOS)

  • Feed de atividades (pedidos de doação)
  • Perfil do doador com o status, pontuação e/ou emblema

Redesign routes

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)

    • GET: v1/me (Get information about the logged User)
    • GET: v1/me/followers (User followers)
    • GET: v1/me/following (others user that the current User is following)
    • GET: v1/me/donations (User's donations)
    • GET: v1/me/donated (User's received donations)
    • GET: v1/me/campaigns (Get all campaigns created by the User)
    • POST: v1/me/campaigns (Add a new campaign)
    • PUT: v1/me/campaigns/{id} (Update a campaign that User owns)
    • DELETE: v1/me/campaigns/{id} (Delete a campaign that User owns)
    • GET: v1/me/notifications (Check all User notifications, read and unread)
    • GET: 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

Lista de tarefas

Seria possível criar alguns Cards em Projects para saber quais tarefas estão pendentes?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.