Skip to content

Edgar-Macharia/moringa-overflow

Repository files navigation

Moringa Overflow

The Moringa Overflow is a web application developed using RoR (Ruby on Rails) and React JS. It aims to provide programmers with a seamless and comprehensive platform where they can effortlessly ask questions and get answers from other programmers.

Technologies Used

  1. ReactJS: Used to develop the front end of the project, providing a smooth user experience.

  2. Ruby on Rails (RoR): Used for backend development, providing a robust and scalable server-side framework.

  3. SQLite3: Used for the development environment to store and update tables containing created items and categories.

  4. PostgreSQL: Used as the production database environment. Database tables: https://drawsql.app/teams/phase-5/diagrams/moringa-overflow

  5. Active Record: Object-relational manager for the database, facilitating easy database interactions and queries.

Getting Started /Setup

  1. The project is already deployed on Railway. You can use this endpoint to access it
https://elastic-gate-production.up.railway.app/

Use the following login details to test the features of the project for other users

Alternatively

  1. Clone the repo
git clone [email protected]:EdMash00/moringa-overflow.git

Navigate to the project directory using:

cd moringa-overflow

Install the required dependencies:

bundle install

Set up the database:

rails db:reset

Start the Rails server:

rails s

The API is now running on http://localhost:3000.

You are now ready to explore the Moringa Overflow project, Ask questions, and answer questions asked by other developers.

Copy code

Usage

Moringa Overflow is a platform designed to facilitate questions and answers among programmers. Here's how you can use the application:

  1. User Registration and Login:

    • To use the application, users need to register or log in. The frontend is deployed at [https://elastic-gate-production.up.railway.app/]. Click on the "Register" or "Login" button to create a new account or log in to an existing account.
  2. Asking a Question:

    • Once logged in, you can ask a question by navigating to the "Ask a Question" section. Provide a title and detailed description for your question.
  3. Answering a Question:

    • Users can answer questions by visiting the question's page and adding their answer in the provided input field.
  4. Voting and Favorites:

    • Users can upvote or downvote questions and answers to show their approval or disapproval. Additionally, you can mark questions as favorites to easily access them later.
  5. Profile Management:

    • Users have the option to update their profiles, including profile pictures and passwords. You can also view your favorite questions and the questions you've asked.
  6. Moderator Actions:

    • Users with moderator privileges have additional actions available, such as banning users and updating their moderator status.
  7. Searching for Questions:

    • The application provides a search functionality that allows users to search for specific questions using keywords.
  8. Notifications:

    • Users can view and manage their notifications related to questions, answers, and other interactions.

Remember to explore the application's features, interact with other users' questions and answers, and contribute to the community by sharing your knowledge and insights.

Contributing

We welcome contributions to the Moringa Overflow Project. If you have any suggestions, bug reports, or feature requests, please open an issue on the GitHub repository or submit a pull request.

Before making any significant changes, please discuss them with the project maintainers to ensure they align with the project's goals and direction.

License and copyright

  • The code in this project is licensed under the terms of the General Public License (GPL-3.0).

  • You are granted permission to use, modify, and contribute to the project under the conditions outlined in the GPL-3.0 license.

  • It is important to preserve and include the copyright and license notices in all copies and distributions of the project.

Author

This project was created by Samuel, Edgar, Kelvin, Charles and Bonface.