Full-stack messaging application built using the PERN stack (PostgreSQL, Express, React, and Node).
- Getting Started
- Development and Testing
- Development Plan and Improvements
- Project Structure
- Contributing
- License
- Support
Before getting started, ensure you have the following installed:
Follow these steps to set up the application locally:
- Clone the repository:
git clone https://github.com/imseanconroy/relay.git
cd relay
-
Frontend Setup:
- Navigate to the frontend directory and install dependencies:
cd frontend npm install
- Configure environment variables by creating a
.env
file in thefrontend
directory:
NODE_ENV=development
- Start the frontend development server:
npm run dev
-
Backend Setup:
- Navigate to the backend directory and install dependencies:
cd backend npm install
- Configure environment variables by creating a
.env
file in thebackend
directory:
DATABASE_URL=<your_database_url> JWT_SECRET=<your_jwt_secret> NODE_ENV=development PORT=3000
- Start the backend development server:
npm run dev
Run all tests with the following command:
npm run test
This section outlines upcoming features and improvements:
-
User Features:
- Integrate email validation and forgotten password functionality.
- Add functionality to update and delete messages.
- Enable replying to messages and creating message threads.
- Improve search functionality with optimized API calls and enhanced UI.
- Implement avatars customization and image uploads.
-
UI/UX Enhancements:
- Redesign the chat interface for better usability, particularly on mobile devices.
- Integrate animations and transitions to enhance user interaction.
-
Testing and Quality Assurance:
- Expand test coverage for both frontend and backend components.
- Automate integration tests using CI/CD pipelines for streamlined deployment.
- Introduce comprehensive logging for error tracking and debugging.
-
Documentation:
- Create a detailed API reference.
Feel free to suggest additional improvements by opening an issue.
relay/
├── frontend/ # React application
├── backend/ # Express.js server and PostgreSQL integration
└── README.md # Project documentation
Contributions are welcome. Please open an issue or submit a pull request for any enhancements or bug fixes.
This project is Distributed under the MIT License - see the LICENSE file for information.
If you are having problems, please let me know by raising a new issue.