Giter VIP home page Giter VIP logo

rvm's Introduction

RVM

GitHub contributors GitHub last commit License: MPL 2.0

Contributing | Built with | Development | Deployment | Feedback | License | About Code for Romania

Contributing

This project is built by amazing volunteers and you can be one of them! Here's a list of ways in which you can contribute to this project.

Built With

  • Laravel
  • Tailwind CSS
  • Filament

Requirements

  • PHP 8.1+
  • Nginx
  • MySQL 8.0

Development

This project uses Laravel Sail, Laravel's default Docker development environment.

After running the initial setup, run this command to start up the environment:

./vendor/bin/sail up -d

and then this command to rebuild the css / js assets on change:

./vendor/bin/sail npm run dev

Initial setup

# 1. Install composer dependencies
docker run --rm -v ${PWD}:/app -w /app composer:latest composer install --ignore-platform-reqs --no-scripts --no-interaction --prefer-dist --optimize-autoloader

# 2. Copy the environment variables file
cp .env.example .env

# 3. Start the application
./vendor/bin/sail up -d

# 4. Install npm dependencies
./vendor/bin/sail npm ci

# 5. Build the frontend
./vendor/bin/sail npm run build

# 6. Generate the app secret key
./vendor/bin/sail artisan key:generate

# 7. Migrate and seed the database
./vendor/bin/sail artisan migrate:fresh --seed

For more information on Laravel Sail, check out the official documentation.

Deployment

The fastest way to deploy RVM is by using our first-party Docker image.

Prerequisites

Generate an application key

To generate an application key, you can run the following command in your terminal.

docker run --rm -it code4romania/rvm php artisan key:generate --show

The generated application key will look like this:

base64:yEtz1eacKMwq0iVT5BUjMMvcn4OAD7QpCgz1yDoXroE=

Running the image

Download the example docker-compose.yml and configure the environment variables. Here's where you use the APP_KEY generated earlier. After you're done, save the file and run it with:

docker-compose up -d

Feedback

  • Request a new feature on GitHub.
  • Vote for popular feature requests.
  • File a bug in GitHub Issues.
  • Email us with other feedback [email protected]

License

This project is licensed under the MPL 2.0 License - see the LICENSE file for details

About Code for Romania

Started in 2016, Code for Romania is a civic tech NGO, official member of the Code for All network. We have a community of around 2.000 volunteers (developers, ux/ui, communications, data scientists, graphic designers, devops, it security and more) who work pro-bono for developing digital solutions to solve social problems. #techforsocialgood. If you want to learn more details about our projects visit our site or if you want to talk to one of our staff members, please e-mail us at [email protected].

Last, but not least, we rely on donations to ensure the infrastructure, logistics and management of our community that is widely spread across 11 timezones, coding for social change to make Romania and the world a better place. If you want to support us, you can do it here.

rvm's People

Contributors

andreiio avatar gheorghelupu17 avatar alexpopacode4 avatar dependabot[bot] avatar danmic94 avatar

Watchers

Vic avatar  avatar vizu avatar Bogdan Ivanel avatar  avatar

Forkers

danmic94 alinsg

rvm's Issues

[Organizații/Profil organizație/Documente tab] implement 'Încheiat pe perioadă nedeterminată' checkbox

Within issue #135 , we implemented a new checkbox in the document's form (see issue #135 for more details)
The problem is that the checkbox only appears in the document's form/details page if accessed through the following path: Documente/ Document individual.
If the same document is accessed through the following path: Organizații/Porifl organizație/Documente tab/ Document individual
the checkbox doesn't exist.

Implement the checkbox in the individual document's form/details page, regardless of the access path.

[Organisations] remove autofill in 'Alias organizație' field

Go to 'Organisations' from side navigation > Click on 'Create organisation' button > Populate the 'Denumirea organizatiei' field with a value > when you populate the field, it is autofilling the 'Alias organizație' field with the same value

Expected behavior: the filed 'Alias organizație' should not be mandatory; if the user does not populate the field with any value, it will be autopopulated with the value from the 'Denumirea organizatiei' field but only after saving the entity

[Organisations] change page title

Go to 'Organisations' from side navigation > Click on a table row > Notice that the page title is 'Editare Organisation'
The page title should be the name of the organisation (value from filed ''Denumire organizație'')
image

[Iconography] suitable icons for side nav bar

The side navigation bar consists of 6 buttons: 'Panoul de control', 'Documents', Organisations', 'Resources', 'Users', 'Volunteers';
The architecture of each button consists of an icon and the label.
Currently, the used icons don't suit the label. To be discussed, depending on the available icons library, which icons are best for each button.
image

[Documents] error at adding documents

Describe the bug
When you add a new document and try to save it, an error is displayed. After you close the error and click on 'Anulare,' it takes you back to the documents list, and you can notice that the document you tried to save and failed was indeed saved in DB.

To reproduce

  1. Go to the 'Documente' section
  2. Click on the 'Adăugare Document' button
  3. Fill in all the field
  4. Click on 'Salvare'
  5. Notice the error displayed
  6. Close the error message
  7. Click on 'Anulare'
  8. Notice that the document has been saved in db, and it is displayed in the table

image

Expected bahavior
When the user clicks on the 'Salvare' button the entry should be saved in db and the user must be shown the newly created entry in view mode.

[Organisations] change tab name

Go to 'Organisations' from side navigation > Click on a table row > Notice that the first tab is named 'Editare'
Change tab name to 'Profil'
image

[General] implement data dictionary/fields

1. Add document

Implement fields from ''Add document'' sheet from the data dictionary in:
Go to 'Document' from side navigation > Click on 'Adăugare document' button > implement fields in 'Creare document' form
image

2. Add Organisation

Implement fields from ''Add Organisation'' sheet from the data dictionary in:
Go to 'Organisations' from side navigation > Click on 'Create organisation' button > implement fields in 'Adaugă organizație nouă' form
image

3. Organisation Profile - General data

Implement fields from ''Organisation Profile - General data'' sheet from the data dictionary in:
Go to 'Organisations' from side navigation > Click on an individual organisation from the table > implement fields in 'Date generale' tab
image

4. Organisation Profile - Activity

Implement fields from ''Organisation Profile - Activity'' sheet from the data dictionary in:
Go to 'Organisations' from side navigation > Click on an individual organisation from the table > implement fields in 'Activitate' tab
image

5. Add Resource

Implement fields from ''Add Resource'' sheet from the data dictionary in:
Go to 'Resources' from side navigation > Click on 'Adăugare resource' button > implement fields in 'Creare Resource' form
image

6. Add User

Implement fields from ''Add User'' sheet from the data dictionary in:
Go to 'Users' from side navigation > Click on 'Adăugare user' button > implement fields in 'Creare User' form
image

7. Add Volunteer

Implement fields from ''Add Volunteer'' sheet from the data dictionary in:
Go to 'Volunteers' from side navigation > Click on 'Adăugare volunteer' button > implement fields in 'Creare Volunteer' form
image

Create API endpoint for resources

This endpoint should be accessible at /api/resources and include the following fields:

  • ID
  • Denumire resursă
  • Județ
  • Organizație:
    • ID
    • Nume
  • Categorie:
    • ID
    • Nume
  • Subcategorie:
    • ID
    • Nume
  • Tip:
    • ID
    • Nume
  • Created at
  • Updated at

[Documents] Add email trigger rule for Protocol expiry

  1. After 11 months from signed_at send reminder to NGO and Admin DSU that the protocol will expire.

Email text:
"Bună,

protocolul dintre [nume_organizatie] și Departamentul pentru Situații de Urgență va expira în 30 de zile.
Dacă aceste nu este prelungit, veți pierde accesul în aplicație de management de resurse.

Mulțumim,
Echipa DSU"

  1. After 12 months from [signed_at] send notification to NGO and Admin DSU that the protocol has expired.

Email text:
"Bună,

protocolul dintre [nume_organizatie] și Departamentul pentru Situații de Urgență a expirat.

Mulțumim,
Echipa DSU"

[Documents] error at creating a document

Go to 'Documents' from side navigation > Click on 'Adăugare document' button > Populate the 'Signed at' field with a value > Populate the 'Expire at' with a value > Click on 'Protocol' field > Upload a document > Click on 'Creare' button
There was displayed the following error:
image

[General] after saving changes the page remains in edit mode

Describe the bug
When you edit an entity in the platform (resource, organization, etc.), after making the change, the page remains in edit mode when you click 'Salvare'.

To Reproduce

  1. Go to the 'Resurse' section
  2. Click on an individual resource
  3. Click on the 'Editare' button
  4. Click on the 'Salvare' button
  5. Notice that the success message is displayed, but the page remains in edit mode

image

Expected behavior
When you click on the 'Salvare' button, the changes should be saved and the page should go back to view mode.

[Infra] Docker image on Docker Hub missing `latest` tag

The README instructs the user to run:

docker run --rm -it code4romania/rvm php artisan key:generate --show

as part of the initial setup. If that command doesn't find a local image named code4romania/rvm, it tries to pull from Docker Hub code4romania/rvm:latest. But on Docker Hub, there is no image with that tag, only one with the edge tag.

[Coordonator IGSU/ISUJ/ Organizații] this user type should NOT be able to Activate/Deactivate organizations

Describe the bug
Coordonator IGSU/ISUJ should NOT be able to Activate/Deactivate organizations. Currently, the ,,Activeazză''/,,Dezactivează'' is displayed in organization's profile for this user type.

image

To Reproduce
Steps to reproduce the behavior:

  1. Log in as Coordonator IGSU/ISUJ
  2. Go to Organizații page
  3. View an individual organization
  4. See the Activează/Dezactivează button in the top right corner of the page

Expected behavior
REMOVE the Activează/Dezactivează button for the Coordonator IGSU/ISUJ user type.

[Profil ONG] update values for 'Tip organizație' field

Update Field_Values for ''Tipul organizație'': ONG; Entitate privată; Instituție publică; Mediu academic;

IF Field_Value 'ONG' selected, display ''Tipul ONG-ului' field having the following Field_Values: Asociație; Fundație; Federație; (single select, mandatory)

[Organisations] no invitation received after adding an organisation in platform

Go to 'Organisations' from side navigation > Click on 'Create organisation' button > Populate the fields > Click on 'Confirmare'
After clicking on 'Confirmare' there is no invitation sent to the email address.

Expected behavior: after adding an organisation in the platform, an email should be sent to the email address from the 'Email de contact organizatie' filed; The email should contain:

  • a message to let the user know that it has been added to the platform
  • instructions regarding the log in credentials
  • a reset password link
    To be discussed about details with the UX

[Organisations] no feedback after adding an organisation

Go to 'Organisations' from side navigation > Click on 'Create organisation' button > Populate the fields > Click on 'Confirmare'
After clicking on 'Confirmare' the side panel collapses and there is no success message displayed.

Expected behavior: after adding an organisation, there should be displayed a success message (similar to the following one):
image

[Documente] implement new checkbox

Implement the following checkbox under the 'Dată expirare' field: 'Încheiat pe perioadă nedeterminată'
If checked => the protocol will NOT have an expiring date (so the 'Dată expirare field becomes disabled), and it will not be taken in consideration when the system checks the db for reminders

[All users/Resurse] when you filter by Categorie, it doesn't display only the corresponding values for Subcategorie and Tip filters

Describe the bug
If the user wants to filter the resource database by a certain category, it will display all values in subcategorie and tip fields, not only the corresponding values to that certain category the user wants to filter the database by.

Expected behavior
When you filter by a specific category, for subcategorie and tip fields/filters, it should display only the corresponding values to that category, as the data dictionary explains. (see Add Resource sheet)

[General] dropdown field component behavior

When you click on a dropdown filed, it displays the list and the field changes to a focus state. When you click on the filed it triggers the collapse of the list but it remains in the focus state.
In order to see the behavior follow the next steps:
Log in > Click on 'Organisations' from side navigation bar > Click on 'Județ' OR 'Tipul organizației' fields from the filters section > Click again on the field

Expected behavior: When a user clicks on the field, the list should be displayed and the filed should be in focus state; when the user clicks again on the field or outside the field, the list should be collapsed and the field should get back to default state.

[Documents] user can't view or download an uploaded file

Go to 'Documents' from side navigation > Click on a table row to open an entity
The user can't view or download the file attached to that entity.
It is critical for the user to view AND download the file that is attached to the entity.
image

[Design] change primary color

The current primary color is #F7B13C (with the corresponding gradient illustrated below). Change the primary color from #F7B13C to #264998. Replace the primary color with the new one.

Current color gradient:
image

EXPECTED COLOR GRADIENT:
image

Create API endpoint for organisations

This endpoint should be accessible at /api/organisations and include the following fields::

  • ID
  • Denumire organizație
  • Tip organizație
  • Status
  • Sediu
  • Aria de expertiză:
    • ID
    • Nume
  • Categorie de risc:
    • ID
    • Nume
  • Tipuri de acțiuni
  • Aria de activitate
  • Județ
  • Created at
  • Updated at
  • Volunteers count

Provide API for DSU

DSU requested an API on RVM to automatically import the data from the dashboard (e.g. number of active protocols) to the DSU website.

Create endpoints for:

Other relevant issues:

  • API access should be authenticated
  • Responses should not be paginated
  • #153

[Users] implement user invite message

When you add a user to the platform, the email should have the following structure and content:

Ești invitat să te alături platformei RVM - Sistemul de management de resurse umane și materiale în cazul unui dezastru, administrat de Departamentul Situații de Urgență al României.
Acceptă invitația (link attached to this phrase) pentru a-ți putea accesa contul.
Link to the password setting page / Acceptă invitația button that will take user to password setting page

[Volunteers] change 'Acreditare prim ajutor' display in table

Go to RVM sign in as DSU Admin > Volunteers from side menu > notice the 'Acreditare prim ajutor' column
Currently, the data field 'Acreditare prim ajutor' is displayed in the table using toggle component
It needs to be displayed as plain text ''Yes'' / ''No''; the value should be editable only in Volunteer edit mode NOT directly from table view
image

[Panoul de control] stats in cards

In the Panoul de control section should be displayed the following statistics, using the components shown below in screenshot:

  1. Total number of organisations in db
  2. Total number of resources in db
  3. Total number of volunteers in db
    image

[Admin DSU/Organizații] change field statuses from mandatory to not mandatory

When an organization is added to the platform, the only information filled in is
Denumire organizație; Alias organizație; Email; Telefon; Tip organizație.
The Admin ONG user must add all the other information about the organization in ,,Profil organizație'' section.
Since most of the fields in ,,Profil organizație'' are MANDATORY, when the user wants to edit a piece of information about the organization, they have to fill in all the mandatory fields to be able to save the entry.
This constrain could create frustration because the user must fill in all mandatory information at once, otherwise, they won't be able to save the changes.
To explore if we make all the fields in ,,Profil organizație' optional or not.

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.