An Open Source Web Mobile App for supporting ongoing live meetings (either in-person or online) in small communities where offers and needs are shared and matched. This app is not meant to be a stand-alone app for sharing offers and needs. It is meant to be used by communities who are meeting and exchanging offers and needs. It is simply a place to store the offers and needs that are shared.
These instructions will give you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on deploying the project on a live system.
Requirements for the software and other tools to build, test and push. You must have these installed in your system before proceeding to the next step.
This section will guide you through setting up a local development environment for the project. Please follow the installation process carefully.
git clone https://github.com/rdamashek/Community-Through-Caring.git
cd Community-Through-Caring/MAIN
composer update
After successful attempt, you should see all dependencies being installed and now the system is ready to be configured.
NOTE that the code is in /MAIN
directory
Follow these steps to install the necessary database for your local server.
community_caring
. You might want to use XAMPP or WAMP./Database/community_caring.sql
directory of your project. Open the project in VS code or in whatever software you like, for vs code:
write the following command in cmd:
code .
note that you must be in dir: 'Community-Through-Caring/MAIN'
Environment variables are used to configure the application. They include essential information such as database configurations and basic app setup.
The project uses the env plugin to add the ability of configurations all at one place. Once you do the above steps, now it's time for setting up the environment variables and your app is ready to go. The .env
file is located at the project root folder. You need to edit the .env
file and make the required configurations as listed below.
In order to ensure seamless communication and data management within your application, it's essential to configure both SMTP (Simple Mail Transfer Protocol) for email functionality and database settings for storing and retrieving data.
SMTP is crucial for sending emails from your application, whether it's for user verification, password resets, or notifications. Below are the environment variables related to SMTP that you need to configure in your .env
file:
SMTP_HOST='' # The hostname of your SMTP server, provided by your email service provider.
SMTP_DEBUG='0' # Set debugging mode. Set to '1' for debugging, '0' for production.
SMTP_AUTH='false' # Indicates whether SMTP authentication is required. Set to 'true' if authentication is needed.
SMTP_PORT='25' # The port number of your SMTP server.
SMTP_USERNAME='' # Your SMTP username (if authentication is required).
SMTP_PASSWORD='' # Your SMTP password (if authentication is required).
SMTP_FROM_DEFAULT='' # The default email address from which emails will be sent.
SMTP_FROM_NAME='' # The name associated with the sender's email address.
SMTP_SECURE='false' # Indicates whether to use a secure connection (TLS/SSL). Set to 'true' if a secure connection is required.
SMTP_AUTO_TLS='false' # Indicates whether to enable automatic TLS. Set to 'true' if automatic TLS is required.
Ensure you replace the empty strings ('') with the appropriate values provided by your email service provider. If you're unsure about these details, contact your email service provider for assistance.
Database configurations are essential for storing and managing data within your application. Here are the environment variables related to your database setup:
CI_ENV='prod' # Defines the running environment. Can be set to 'production' or 'development'.
DB_HOSTNAME='localhost' # The hostname of your database server. In most cases, it's 'localhost'.
DB_USERNAME='root' # Your database username.
DB_PASSWORD='' # Your database password.
DB_DATABASE='community_caring' # Your database name. In this case, it's 'community_caring'.
Replace the placeholder values with the actual details corresponding to your database setup. If you're using a remote database server, make sure to provide the correct hostname, username, password, and database name as provided by your hosting provider.
Once you've configured both SMTP and database settings in your .env file, your application will be ready to run locally. These configurations ensure that your application can send emails and interact with the database seamlessly.
If you encounter any issues during setup or have questions about specific configurations, feel free to reach out for assistance.
In order to access the /admin
URL and test the application, you'll need to start the corresponding service (PHP and MySQL). Follow these steps:
Start the PHP and MySQL Service:
Access the Application:
Login Credentials:
admin@admin.com
123456
For users without an existing account, they can register a new account directly from the homepage.
Please ensure that the PHP and MySQL service is running before accessing the application.
The website utilizes an admin panel /admin
to facilitate the management of offers and needs posted by different users. The admin has the authority to control access for specific users or remove them from the system entirely. The left sidebar provides quick access to key functions, including:
Manage Offers: Review, modify, or delete offers submitted by users to ensure compliance with platform guidelines.
Manage Needs: Oversee and regulate the needs posted by users to maintain relevance and authenticity.
Manage Language: Customize the language used on the platform to cater to diverse linguistic preferences and cultural contexts.
User Management: Manage user accounts, including the ability to restrict access or remove users from the system.
Manage Chat Messages: Monitor and, if necessary, remove messages from the platform's chat system to maintain a respectful and relevant community.
General Website Settings: Customize global features such as layout, theme, and other settings to optimize user experience.
Account Settings: Manage personal preferences, notifications, and security settings.
Regularly reviewing and managing offers and needs ensures the quality and relevance of content on the platform.
Language management provides a flexible way to cater to a diverse user base.
User management is a critical aspect of maintaining a safe and secure online community.
Monitoring chat messages helps create a positive and respectful environment for users to interact.
By utilizing the Administrator Console effectively, administrators can play a pivotal role in fostering a vibrant and user-friendly platform.
The User Dashboard provides users with essential tools to interact with the platform and manage their own contributions. It includes the following functions:
Contribute to Chat: Engage in conversations with other users through the platform's chat feature. Users can share information, ask questions, and connect with others in the community.
Manage Offers: Users can create, edit, and delete offers to provide goods, services, or assistance to the community. This function allows for seamless sharing of resources.
Manage Needs: Users have the ability to post, update, and remove needs, outlining what they require from the community. This feature facilitates mutual aid and support within the platform.
Change Account Settings: Users can customize their account preferences, personal information, and security options.
Encourage users to provide clear and accurate information when creating offers and needs for the benefit of the community.
Remind users to review and update their account settings periodically to ensure they receive relevant notifications and maintain account security.
By utilizing these functions, users can actively participate in the platform's community and contribute to a collaborative and supportive environment.
Color | Hex |
---|---|
Primary Color | #268171 |
Secondary Color | #2a8a7259 |
Chat Color | #72b8ff |
The project is built using the following technologies:
These technologies form the foundation of the project, providing a robust and modern development stack.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use Semantic Versioning for versioning. For the versions available, see the tags on this repository.