Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/mahammad-mostafa/hello-rails-react

This is the first project in the full stack capstone module of the Microverse program. It is an exercise for using Rails with React through jsbundling-rails gem & WebPack.
https://github.com/mahammad-mostafa/hello-rails-react

api babel es6-javascript eslint gitflow-workflow jsbundling-rails jsx microverse microverse-projects microverse-students postgresql rails-api react-redux react-router reactjs redux-toolkit rubocop ruby-on-rails stylelint webpack

Last synced: about 1 month ago
JSON representation

This is the first project in the full stack capstone module of the Microverse program. It is an exercise for using Rails with React through jsbundling-rails gem & WebPack.

Awesome Lists containing this project

README

        

# 🏷️ Hello Rails React

This is the first project in the full stack capstone module in the **Microverse** program.


Check the below contents for further details about this project.

# 📗 Contents

- [Description](#description)
- [Instructions](#instructions)
- [Authors](#authors)
- [Future](#future)
- [Contributions](#contributions)
- [Support](#support)
- [Acknowledgements](#acknowledgements)
- [License](#license)

# 📖 Description

This repository is about a simple greeting text in a single page.
This project configured `Rails` to use `jsbundling` gem which allows using `React`.
It also connects with `PostgreSQL` database & follows the `GitFlow` workflow.
State management in `React` is implemented using `Redux` & `Redux Toolkit`.
Remote data fetching from the backend is done with `Thunk` api.
Navigation inside the app is implemented using `React Router`.
Linters are used for (`Ruby` / `JavaScript` / `CSS`).

📌 **Tech Stack:**
- Backend language is `Ruby`
- Backend Framework used is `Rails`
- Frontend language is `JavaScript`
- Frontend Framework is `React`
- Database used is `PostgreSQL`

📌 **Key Features:**
- Single page application
- Responsive layout with all screen sizes
- Basic header & footer structure
- Button to generate random greeting
- Not found page for invalid pages
- Special route for API endpoints

back to top

# 🛠️ Instructions

You can easily download or fork this repository and work on it immadiately!

📌 **Prerequisites:**
- `Ruby` language
- `NodeJS` framework
- `PostgreSQL` database

📌 **Installation:**
- To get all required gem dependencies run
```
bundle install
```
- Create all required databases with
```
rails db:create
```
- Build all table schemas with
```
rails db:migrate
```
- Populate table data with
```
rails db:seed
```

📌 **Development:**
- Run backend server using
```
rails server
```
- Run frontend server using
```
npm run watch
```
- Manipulate & process models data through
```
rails console
```

back to top

# 👥 Authors

📌 **Mahammad:**
- [GitHub](https://github.com/mahammad-mostafa)
- [Twitter](https://twitter.com/mahammad_mostfa)
- [LinkedIn](https://linkedin.com/in/mahammad-mostafa)

back to top

# 🔭 Future

Some additional features I may implement in the project:
- [ ] Use some animations or transitions
- [ ] Implement (dark / light) theme switch

back to top

# 🤝🏻 Contributions

Wish to contribute to this project?


Contributions, issues, and feature requests are more than welcome!


Feel free to check the [issues](../../issues) page too.

back to top

# ⭐️ Support

Like this project? Show your support by starring!

back to top

# 🙏🏻 Acknowledgements

I thank everyone at **Microverse** for guiding me through this project.

back to top

# 📝 License

This project is [MIT](LICENSE.md) licensed.

back to top