MIT License
NeighborhoodAid is a RESTful API and React-based platform designed to empower citizens to report local issues such as potholes, streetlight outages, or vandalism. The platform provides a seamless user experience where individuals can track the progress of their reports, receive real-time updates when issues are resolved, and engage with others in their community. By bringing communities together, NeighborhoodAid aims to foster civic engagement, transparency, and collaboration in solving local problems.
The motivation behind NeighborhoodAid is to provide a practical and comprehensive solution for civic engagement and local issue resolution. The goal is to streamline the process of reporting, tracking, and managing community issues while fostering community interaction and collaboration. We believe that when communities work together, they become stronger and more resilient, and our platform serves as a bridge to facilitate that collaboration.
NeighborhoodAid encourages users to:
During the development of NeighborhoodAid, we gained hands-on experience and deep insights into various technologies and concepts, building a robust, user-friendly platform focused on civic engagement and issue reporting.
NeighborhoodAid has evolved into a dynamic platform, providing users with tools to report, track, and engage with community issues. The platform emphasizes security, accessibility, and scalability, ensuring seamless user experiences across devices and browsers. Through continuous development, the platform is well-positioned to foster meaningful community interactions and collaborations.
Dynamic Issue Reporting:
Task Management on Dashboard:
Interactive Maps:
Weather Updates:
Community Engagement and Feed Management:
Authentication and Security:
Mobile-Responsive and Accessible Design:
AI-Powered Sentiment Analysis (Planned):
Full CRUD Functionality:
git clone https://github.com/mirasoldavila13/NeighborhoodAid.git
cd NeighborhoodAid
npm install
npm run start:dev
npm start
NeighborhoodAid allows users to report community issues, track their progress, and engage with others in their neighborhood. To get started:
npm start
.http://localhost:3001
.Note: Ensure that all required API keys are set up in your environment variables.
NeighborhoodAid initially originated as a group project. However, due to team availability and shifting responsibilities, the project has since been further developed and expanded individually by Mirasol Davila. All subsequent feature implementations, optimizations, and refinements were led solely by Mirasol Davila to enhance the platform’s functionality, scalability, and user experience.
Mirasol Davila served as the Lead Full Stack Developer for the initial version of NeighborhoodAid, taking charge of the majority of development tasks. Below is a summary of the key contributions made by Mirasol Davila:
Component/Feature | Description | Details | |||
---|---|---|---|---|---|
GitHub Issue Template | Created a standardized GitHub issue template for user stories and issues. | - Ensured consistency in the creation of 16 GitHub issues, covering frontend, backend, and API integration tasks. | |||
Official Logo | Designed the official logo for the platform. | - Developed multiple logo concepts emphasizing community, support, and local engagement. | LandingPage.tsx | Developed as the main entry point for the Neighborhood Aid platform. | Integrated child components (Nav, Hero, Features, FAQ, Testimonials, Newsletter, Footer) using React and TypeScript for a cohesive, maintainable, and responsive design with Tailwind CSS. |
Nav.tsx | Designed and developed the navigation component for desktop and mobile views. | Implemented dynamic menu state management, responsive design with Tailwind CSS, accessibility enhancements using semantic HTML, and consistent visual styling for hover and interaction states. | |||
Newsletter.tsx | Created a subscription section to encourage user engagement and sign-ups. | Developed responsive form elements, incorporated Tailwind CSS for consistent styling, and ensured accessibility with semantic structuring and clear placeholder texts. | |||
FAQ.tsx | Built an interactive FAQ section using an accordion-style interface. | Managed state with useState , implemented dynamic styling for active states using Tailwind CSS, and ensured accessibility with semantic HTML and screen reader support. |
|||
Features.tsx | Showcased platform features using an interactive tab system. | Developed dynamic feature panels with React, integrated SVG assets, and used Tailwind CSS for responsiveness and consistent styling. | |||
Pricing.tsx | Developed the Pricing component highlighting different subscription plans. | Designed tiered pricing cards with Tailwind CSS, integrated navigation components, ensured responsive behavior across devices, and included interactive CTAs to drive user engagement. | |||
Testimonials.tsx | Built the Testimonials component to showcase user feedback. | Implemented a responsive grid layout, applied Tailwind CSS for consistent styling, and created a dynamic testimonial display system with hover effects and interactive design elements. | |||
MapWithAddress.tsx | Developed an interactive map component using React, TypeScript, and React Leaflet. | Integrated OpenStreetMap, Nominatim, and OpenWeather APIs for robust geolocation capabilities and developed dynamic marker handling and state management for a user-friendly experience. | |||
ReportPage.tsx | Created the Report page for users to submit detailed reports about local issues. | Integrated MapWithAddress for location selection, weather data fetching, and developed a comprehensive form with Tailwind CSS for a streamlined reporting experience. |
|||
authService.ts | Enhanced the authentication service to include registration, login, and Spotify API integration. | Developed robust JWT token management, error handling, and session management functionalities. Implemented Spotify API calls for fetching user playlists and managing authentication tokens. | |||
Middleware Implementations | Added critical middlewares to manage and secure server requests. | Implemented CORS for cross-origin requests, logger for monitoring and debugging, and error handling middleware for consistent API responses. | |||
Database Migrations | Developed migrations for essential tables such as Users, Issues, Feeds, and Comments using Sequelize. | Applied up and down migrations to manage schema changes, implemented validation rules, and ensured schema alignment with project requirements. | |||
Database Modeling | Defined and managed associations between Sequelize models for Feeds, Comments, and Users. | Implemented relationships (belongsTo , hasMany ) and ensured proper model initialization for data integrity. |
|||
API Routes Contributions | Developed robust API routes for managing authentication, community feeds, and reporting issues. | Implemented routes for creating, updating, deleting, and fetching feed posts. Integrated report submission routes with weather and geolocation APIs for enhanced context and error handling mechanisms. | |||
Database Seeding Contribution | Created seed scripts for populating authority reports for testing and development purposes. | Developed seed files using Sequelize’s bulkCreate with error handling and structured sample data for realistic testing scenarios. | |||
.sequelizerc Configuration | Customized the .sequelizerc file to ensure organized paths for migrations, models, and seeders. |
Configured paths for models, seeders, and migrations, ensuring consistent file structuring and ease of access for development and database management. | |||
Server Configuration | Enhanced the server.js file with middleware integration, route organization, and production setup. |
Integrated CORS, logger, and error handling middleware, structured routes for clarity, and set up production configuration for serving the client-side application. | |||
Modal.tsx | Developed a reusable modal component for displaying dynamic messages. | Implemented flexible props for type safety, dynamic rendering based on state, and used Tailwind CSS for styling. Ensured reusability and accessibility across modules. | |||
Weather.tsx | Developed a component to provide real-time weather updates. | Integrated multiple APIs (browser geolocation, OpenWeather) and used Axios for API calls. Styled with Tailwind CSS for a clean and responsive display. Included error handling for user feedback. | |||
Hero.tsx | Designed the hero section for the platform’s landing page. | Structured a visually engaging layout with responsive flex settings, integrated SVG images, and styled text for emphasis. Ensured the component is responsive and accessible. | |||
DashboardNav.tsx | Developed the dashboard navigation component for logged-in users. | Included navigation links, integrated authentication checks, and implemented logout functionality. Styled with Tailwind CSS for responsive behavior and user experience. | |||
Dashboard.tsx | Developed the Dashboard page, providing an interactive community feed and weather updates. | Implemented authentication checks, dynamic post management (like, comment, edit, delete), and integrated the Weather component. Styled for consistency using Tailwind CSS. | |||
Login.tsx & UserRegistration.tsx | Created the login and registration pages for secure user authentication. | Integrated form validation, used authService for login and registration functionality, implemented a modal for feedback, and styled with Tailwind CSS for a professional and responsive design. |
|||
RESTful API Implementation | Built the backend API using Express.js to follow RESTful principles for efficient and organized data handling. | Developed routes for CRUD operations across various models (e.g., user registration, feeds, reporting), ensuring data integrity and secure interactions with authentication middleware. | |||
Full-Stack Development | Combined frontend and backend technologies to create a seamless and integrated platform. | Utilized React and TypeScript for frontend development and Express.js with Sequelize for the backend, connecting components using Axios for RESTful API interactions and state management. |
server/db/schema.sql
.server/models/issue.js
and server/models/user.js
with essential fields and associations, including password hashing for user authentication.server/seeds/index.js
and server/seeds/user-seeds.js
, for testing data in the database.users
table (migrations/20241001203053-create-users.js
).client/src/services/authService.ts
to manage JWT-based authentication.The development of Version 2.0 of NeighborhoodAid was completed under the leadership of Mirasol Davila, building on the solid foundation established during the early stages of the project.
While Justin Kao, Isaiah Skidmore, and Sammy Kordi made early contributions during Version 1.0, they have since shifted focus to other commitments. Their efforts provided helpful starting points for the project, and we appreciate their involvement in the initial stages.
All new features, improvements, and refinements in Version 2.0 were designed, developed, and implemented solely by Mirasol Davila. This release introduces key enhancements that significantly expand the platform’s functionality and usability, laying the groundwork for future developments.
client/src/pages/ReportedIssuesPage.tsx
client/src/pages/CommunityReportPage.tsx
client/src/pages/ReportDetailPage.tsx
client/src/pages/About.tsx
client/src/pages/Blog.tsx
client/src/pages/Careers.tsx
client/src/pages/ConstructionPage.tsx
client/src/pages/OurTeam.tsx
client/src/components/DashboardNav.tsx
client/src/pages/Dashboard.tsx
client/src/components/Footer.tsx
client/src/components/ReportMap.tsx
client/src/components/MapWithAddress.tsx
server/routes/ReportAuthorityRoute.js
server/routes/communityRoutes.js
client/src/services/authService.js
Weather API Integration
Geolocation Integration
The updates in Version 2.0 have significantly improved the platform by introducing:
Comprehensive Reporting System
Interactive Maps
Authentication and Security
Weather and Geolocation Features
UI/UX Enhancements
Users can filter their reports based on the following criteria:
View
ReportMap
.Edit
Delete
CommunityReportPage.tsx
)Authentication Check
User Input Management
Map Integration
Submitting the Report
Tracking Mechanism
Filtering by Status and Type
NeighborhoodAid has evolved with Version 2.0, delivering enhanced reporting systems, interactive maps, and seamless user authentication.
As Version 3.0 begins, the focus will shift toward new integrations, such as the Spotify API, allowing users to share music and create collaborative playlists. Under Mirasol Davila’s leadership, the project will continue to expand, ensuring NeighborhoodAid becomes a vibrant and connected tool for communities.
Reflection: The rapid progress in Version 2.0 highlights the dedication and collaborative spirit of the project. With these enhancements, NeighborhoodAid is well-positioned to grow further, making meaningful contributions to community life.
This project is licensed under the MIT license.
Contributions are welcome! To contribute to NeighborhoodAid, follow these steps:
git clone
to download the forked repository to your local machine.git checkout -b branch-name
.git commit -m "Description of changes"
to commit your changes.git push origin branch-name
to push your changes to your forked repository.To test the NeighborhoodAid platform, follow these steps:
npm run start
) and test features such as issue reporting, commenting, and map visualization.If you have any questions about the project, you can contact me via my GitHub profile at mirasoldavila13
The live version of NeighborhoodAid is hosted on Render. Click the link below to explore the platform and experience all the features implemented in Version 2.0:
Feel free to create reports, explore the interactive map, and browse the community features. Your feedback is always welcome as we continue to enhance the platform in future versions.