GithubHelp home page GithubHelp logo

code4romania / next-door Goto Github PK

View Code? Open in Web Editor NEW
15.0 10.0 26.0 1.56 MB

Grow neighbor communities and increase interaction and support between people living within the same zipcode in both calm and difficult times

Home Page: https://next-door.now.sh

License: Mozilla Public License 2.0

Java 85.63% HTML 2.92% CSS 0.67% JavaScript 10.77%

next-door's Introduction

Next Door / MyHood app

GitHub contributors GitHub last commit License: MPL 2.0

The app is a community platform with two components - web app and native mobile app. The main purpose of this project is to grow neighbor communities and increase interaction and support between people living within the same zipcode in both calm and difficult times. In emergency situations, like the pandemic we are facing or in the event of a major calamity like an earthquake, the closest people who can help are your neighbors. But other than very noisy social networks we do not really know who lives around us and who could help or might need help in difficult situations.

The app allows users to

  • join a hood
  • see their neighbours
  • discuss with neighbours in groups or direct messages
  • receive updates from public authorities
  • receive updates from public and private utilities providers
  • post help offers and help requests
  • view directories of useful contacts and information

In a second release of the app we aim to allow users to also add their local businesses in the app, create events and start joint activities.

Contributing | Built with | Repos and projects | Deployment | Feedback | License | About Code4Ro

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. If you want to make any change to this repository, please make a fork first.

Help us out by testing this project in the staging environment. If you see something that doesn't quite work the way you expect it to, open an Issue. Make sure to describe what you expect to happen and what is actually happening in detail.

If you would like to suggest new functionality, open an Issue and mark it as a [Feature request]. Please be specific about why you think this functionality will be of use. If you can, please include some visual description of what you would like the UI to look like, if you are suggesting new UI elements.

Built With

Programming languages

Backend: Java 11

Platforms

Spring 2.2

Frontend framework

React

Package managers

  • gradle
  • yarn

Database technology & provider

MySQL

Repos and projects

Mention all related repos and projects.

Deployment

Guide users through getting your code up and running on their own system. In this section you can talk about:

  1. Installation process 1.2 install Docker 1.3 install docker-compose
  • with pip: pip install docker-compose 1.3 create and run docker images for all server dependencies (mysql for now):
docker-compose -f etc/docker/docker-compose.yml up
  1. Software dependencies
  2. Latest releases
  3. API references

Describe and show how to build your code and run the tests.

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 Code4Ro

Started in 2016, Code for Romania is a civic tech NGO, official member of the Code for All network. We have a community of over 500 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.

next-door's People

Contributors

aniri avatar catileptic avatar georgebejan avatar mihairinzis avatar overeha avatar raducstefanescu avatar teodoradima avatar trestianp avatar

Stargazers

 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  avatar

next-door's Issues

Create Help component

As a user I want to be able to offer my help to my neighbors and to request help from my neighbors.
I want to be able to post my help offering

  • input help title
  • choose help category
  • add help description

I want to be able to post my help request

  • input help request title
  • choose help category
  • add help request description

Create Notification management system

As a user I want to be able to manage my notifications

  • new posts notifications
  • post updates
  • utilities & authorities updates
  • direct messages
  • help requests & offers
  • new documents in groups
  • new trusted neighbors requests

Add trusted neighbour

As an user in the application I need to be able to add a list of trusted neighbours.

We need to create a new entity that links two Person entities through the relationship trusted neighbour. For now, the entity should only encapsulate minimal information:

  • id of the trustee
  • id of the trusted Person
  • timestamp of the relationship

[WEB] Create newsfeed

As a user, once i am logged in the app, the first screen I want to see is a newsfeed that displays three categories of information:

  • view updates on my help requests
  • view updates from authorities
  • view posts i follow from my groups
  • view all other posts from my groups

Create Public Utility account

As a Public Utility user I want to be able to

  • log in the app
  • add/edit/delete updates (logs should be kept and made visible for all users to prevent misleading information)
  • edit my public utility profile
  • view stats about the usage of the app (how many people/hood)
  • delete my account

Create Community Help listings

In the app, as a user I want to be able to see complete lists of Help Offers and Help requests
I want to see all in a compact list and open each by expanding content.

Create Neighbour account type

As a neighbor I want to be able to

  • create an account
  • complete my profile
  • manage my account
  • add trusted neighbors to my profile
  • add emergency contacts to my profile
  • add a business to my profile

  • be allocated to a hood
  • view my hood
  • see updates in my news feed
  • create open and closed groups
  • join open groups
  • view directories
  • post help offers
  • post help requests
  • view support types
  • customize my notifications

[WEB] Create registration module

As a user I want to be able to create an account.

  • i want to click on Create account on the project landing page and register

  • by filling in a registration form with a few basic details.

  • and confirm my account by clicking on a link i receive via email

Create Groups

The conversation in the app is happening in two main areas - in groups and in direct messages.
A group is made by three or more users in the same hood or cross-hoods.

  • Groups can be closed or open,
  • Every user can create a group and set its privacy level.
  • Every user can edit its privacy level for the groups he/she created.
  • Groups can be deactivated and archived, not deleted by regular users, just by Community leads.
  • A user has to be able to
    • create an open group
      - input group name,
      - group description,
      - add the first two people at a minimum,
      - set up group range - if it is a hood group or a cross-hood group
    • create a closed group
      - input group name,
      - group description,
      - add the first two people at a minimum,
      - set up group range - if it is a hood group or a cross-hood group
      - set up questions for group joining requests from other users in the app)
    • close a group (which automatically archives the group and nobody can reactivate a group other than the initial creator of the group)

Create Public Authority account type

As a Public Authority I want to be able to

  • log in the app
  • add/edit/delete updates (logs should be kept and made visible for all users to prevent misleading information)
  • edit my public authority profile
  • view stats about the usage of the app (how many people/hood)
  • delete my account

[WEB] Create user account types

The app has the following types of users:

  • Neighbour
  • Community Lead
  • Public authority
  • Public utility
    - Business (not in the MVP)

Add new Directory & items in directories

  • All users should be able to submit directory entries to the app admin through a simple form in the Directories area of the app.
  • Admins may or may not accept these submissions.
  • Admins are the only users who can create or add new items to the directories. The Neighbours directory is automatically populated
  • When I create a new directory as an Admin i have to list
    • directory name
    • directory description
    • directory items (name, description, contact details)

Create Directories

The app hosts directories of:

  • neighbours
  • hoods
  • public authorities
  • public utilities
  • community leads
    - businesses (not in MVP)

Create Emergency Contacts notification feature

As a user I can add emergency contacts to my profile.
Should it be needed, any trusted neighbour can message my emergency contacts through the app.
If a trusted neighbor click on the Message Emergency Contact displayed in my profile, an SMS will be sent to my contact and a copy of that SMS will be sent to me as well.

Add emergency contact entity

As an user I can add to my profile a list of emergency contacts.
An emergency contact will not be visible outside the user profile.
The contacts will be defined as follows:

  • Name Surname
  • email address
  • telephone number

This is linked to #16

Add user type

Based on: #5

Currently the User entity has no reference to any roles.
An user can have the following roles:

  • PF/REGULAR (persoana fizica)
  • Public authority
  • Public utility

Add the information about user role to the User entity. One user can have only one role.
Update the role which is set to the UserPrincipal after login.

CRUD Groups

Based on #10

Create the Group entity with the following attributes:

  • name
  • description
  • open (true/false)
  • security question (if the group is closed)

Create Community Lead account type

As a Community Lead I want to be able to

  • create an account
  • complete my profile
  • manage my account
  • add trusted neighbors to my profile
  • add emergency contacts to my profile
  • add a business to my profile

  • be allocated to a hood
  • view my hood
  • see updates in my news feed
  • create open and closed groups
  • join open groups
  • view directories
  • post help offers
  • post help requests
  • view support types
  • customize my notifications
  • manage groups
  • manage files in groups
  • manage neighbors directories (if someone moves from the building I can archive his/her account)
  • delete posts/offers/requests by others
  • add utility providers to the hood (ex: if a building gets a new internet provider for all apartments, I can create an account for that provider)

CRUD Person

Currently we have the User entity which holds authentication information.
We also need a profile for each user. This profile will be filled after the account is created.
In order to hold information about this, we need a Person entity with the following attributes:

  • first name
  • last name
  • address (street name, street number, ap. number, city, county, country, zip code)

There should be a OneToOne connection between a Person and an User

Create the full CRUD functionality (controller, service, repository, entity) and add tests for it

CRD for trusted neighbour

We need to put in place a new controller for the trusted neighbour relationship.
The controller will implement the CRD operations on the trusted neighbour relationship.

This issue is linked to #26

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.