An open API service indexing awesome lists of open source software.

https://github.com/solobarine/correo

A Full Stack Application for Posting and Viewing Post. See more on the Readme.
https://github.com/solobarine/correo

javascript laravel php postgresql tailwindcss

Last synced: 2 months ago
JSON representation

A Full Stack Application for Posting and Viewing Post. See more on the Readme.

Awesome Lists containing this project

README

          

# Correo

Correo is a versatile social post app designed to foster meaningful interactions among users. It provides a range of features that include user authentication, post creation, like and dislike functionality, commenting, profile management, and email notifications. This document serves as a comprehensive guide to understanding and deploying the Correo application.

## Table of Contents

- [Features](#features)
- [Technologies Used](#technologies-used)
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Configuration](#configuration)
- [Usage](#usage)
- [Backend Functionalities](#backend-functionalities)
- [Author](#authors)
- [Contributing](#contributing)
- [License](#license)

## Features

Correo boasts a broad spectrum of features that enhance the user experience:

- **User Authentication:** Correo ensures a secure user registration and login system that protects user data and privacy.

- **Post Creation:** Users can create engaging posts with titles and rich content. Express your thoughts, experiences, or ideas with ease.

- **Like and Unlike Posts:** Interact with other users' posts by liking or unliking them, fostering engagement and feedback.

- **Commenting:** Users can leave comments on posts, encouraging discussion and community-building.

- **Post and Comment Deletion:** Maintain control over your content by deleting your own posts and comments.

- **Profile Viewing:** Get to know your fellow users by viewing their profiles. You can also check your own profile to see your posts and activity.

- **Email Notifications:** Users receive timely email notifications on successful registration, login, post likes, and comments.

- **Pagination:** Manage large numbers of posts and comments effectively with the use of pagination, ensuring smooth navigation and performance.

- **Policies for Authorization:** Implement robust authorization policies to control and manage user actions, providing a secure and trusted environment.

- **Reusable Components:** Create a seamless and consistent user interface using reusable components, improving overall design and usability.

- **Route-Model Binding:** Simplify the retrieval and manipulation of data from the database with Laravel's route-model binding.

- **Email Sending using Mailtrap:** Utilize Mailtrap for email testing and debugging, guaranteeing reliable email delivery to users.

## Technologies Used

Correo leverages a stack of modern technologies to deliver an efficient and robust user experience:

- **PHP:** The backbone of the application, PHP is used to develop server-side logic, facilitating seamless data processing.

- **Laravel:** A powerful PHP web application framework, Laravel is used to create feature-rich web applications that offer scalability and maintainability.

- **JavaScript:** Employed on the client side to enhance interactivity, JavaScript is essential for creating dynamic user experiences.

- **Tailwind CSS:** A utility-first CSS framework, Tailwind CSS helps design a modern and responsive user interface.

- **Postgres:** PostgreSQL, often referred to as Postgres, is a powerful open-source relational database management system (RDBMS). It is known for its advanced features, extensibility, and a strong focus on data integrity

- **Mailtrap:** This tool for email testing and debugging is integrated to manage email notifications, ensuring accurate email delivery to users.

## Getting Started

To deploy Correo on your local development environment, follow these instructions:

### Prerequisites

Before installing Correo, make sure you have the following software installed on your system:

- PHP 8.0 or higher
- Composer (PHP package manager)
- Laravel CLI
- Node.js and NPM (Node Package Manager)
- Git
- A database (e.g., Postgres, MySQL, MongoDB)

### Installation

1. Clone the Correo repository to your local system:

```bash
git clone https://github.com/yourusername/correo.git
```

2. Navigate to the project directory:

```bash
cd correo
```

3. Install PHP dependencies using Composer:

```bash
composer install
```

4. Install JavaScript dependencies using NPM:

```bash
npm install
```

5. Create a .env file by copying the example:

```bash
cp .env.example .env
```

6. Generate an application key:

```bash
php artisan key:generate
```

7. Configure your .env file to set up the database and email settings.

- Run database migrations:

```bash
php artisan migrate
```

- Start the development server:

```bash
php artisan serve
```

8. Access the application in your web browser at this [localhost port](http://localhost:8000)

## Configuration

For a smooth setup and operation of Correo, take care of the following configurations:

- Database Configuration: In the .env file, provide the necessary details for connecting to your database.

- Mail Configuration: Configure the email settings, including the use of Mailtrap or your preferred email service.

- Pagination Configuration: Adapt pagination settings within controllers and views as needed for efficient content management.

## Usage

To start using Correo:

- Register a new account or log in using an existing one.

- Create posts, like and comment on posts, and view user profiles.

- Stay updated with email notifications for various activities.

## Backend Functionalities

Correo incorporates various backend functionalities for seamless operation:

**User Authentication:** The application employs Laravel's built-in authentication system, ensuring that user registration and login are secure and reliable.

**Policies for Authorization:** Policies and gates are set up to control user actions, allowing for appropriate management of posts and comments.

**Pagination:** Laravel's pagination features are utilized to effectively handle large datasets, guaranteeing user-friendly navigation.

**Reusable Components:** Blade templates and components are used to establish a consistent and reusable user interface for a cohesive design.

**Route-Model Binding:** Laravel's route-model binding simplifies the retrieval and manipulation of data, making data management efficient.

**Email using Mailtrap:** Mailtrap is integrated for testing and debugging email functionality, ensuring a seamless email experience.

## Authors

**Solomon Barine Akpuru**

- [github handle](https://github.com/solobarine)
- [linkedin handle](https://linkedin.com/in/solomon-akpuru)

## Contributing

If you're interested in contributing to Correo, we welcome your input. Please refer to our contribution guidelines to get started.

## License

This project is licensed under the MIT License. Feel free to use, modify, and distribute the code according to the terms of the license.
View the License [Here](./LICENSE).

Happy Posting!