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

https://github.com/developertariq/my-blog

Blog app will be a classic example of a blog website. I will create a fully functional website that will show the list of posts and empower readers to interact with them by adding comments and liking posts. Everything will be based on the given UML class diagram. The data will be stored in postgreSQL database.
https://github.com/developertariq/my-blog

Last synced: about 1 year ago
JSON representation

Blog app will be a classic example of a blog website. I will create a fully functional website that will show the list of posts and empower readers to interact with them by adding comments and liking posts. Everything will be based on the given UML class diagram. The data will be stored in postgreSQL database.

Awesome Lists containing this project

README

          

# 📗 Table of Contents

- [📗 Table of Contents](#-table-of-contents)
- [📖 Blog app ](#-blog-app-)
- [🛠 Built With ](#-built-with-)
- [Tech Stack ](#tech-stack-)
- [Key Features ](#key-features-)
- [💻 Getting Started ](#-getting-started-)
- [Prerequisites](#prerequisites)
- [Setup](#setup)
- [Run](#run)
- [Test](#test)
- [👥 Authors ](#-authors-)
- [🔭 Future Features ](#-future-features-)
- [🤝 Contributing ](#-contributing-)
- [⭐️ Show your support ](#️-show-your-support-)
- [🙏 Acknowledgments ](#-acknowledgments-)
- [📝 License ](#-license-)

# 📖 Blog app

**Blog app** will be a classic example of a blog website. I will create a fully functional website that will show the list of posts and empower readers to interact with them by adding comments and liking posts. Everything will be based on the given UML class diagram. The data will be stored in postgreSQL database.

The project is divided in eleven (11) milestones and one exercise.

- Milestone 1: Setup and controllers
- Milestone 2: Controllers specs
- Milestone 3: Creating a data model
- Milestone 4: Processing data in models
- Milestone 5: Views
- Milestone 6: Forms
- Milestone 7: Validations, Model specs, and n+1 problems
- Milestone 8: Add Devise
- Milestone 9: Add authorization rules
- Milestone 10: Integration specs for views
- Milestone 11: Add API endpoints
- Exercise: API documentation

The app is built to match the following Entity Relationship Diagram:


Data model

This project is designed following these wireframes:


Login page wireframe
All users page wireframe
Single user page wireframe


All posts by a given user page wireframe
Single post page wireframe

## 🛠 Built With

### Tech Stack

### Key Features

- Create a post
- List all posts by users
- Post details
- User details
- Like posts
- Comment posts

(back to top)

## 💻 Getting Started

### Prerequisites

* Make sure you have Ruby installed in your system. You can install it [here](https://www.ruby-lang.org/en/documentation/installation/)

* Get started with [Ruby on Rails](https://guides.rubyonrails.org/getting_started.html).

* Make sure you have [PostgreSQL](https://www.postgresql.org/) installed and running.

### Setup

* Clone this repository by running `git clone https://github.com/developertariq/my-blog` in your command line.

* Navigate to the repository by running `cd my-blog`.

* Run `bundle install` to install all the gems.
### Run
* Change/include `host, username, password` according to your database server.
* Run `rails db:create` and `rails db:migrate`
* Run `rails db:seed` to populate the database with some sample data.
* Run `rails s` to start the server.
* In your browser, go to `http://localhost:3000`.

### Test

* Run `gem install rspec` to install Rspec,
* Run `rspec spec` to run all the test cases, and
* Run `rspec spec/models` to run test cases for `models`.
* Run `rspec spec/requests` to run test cases for `controllers`.
* Run `rspec spec/features` to run test cases for `views`.
* Run `rspec spec/filepath/filename.rb` to run test cases individually.

(back to top)

## 👥 Authors

👤 **Md Tariq-ul Islam**

- GitHub: [@developertariq](https://github.com/developertariq)
- Twitter: [@developer-tariq](https://twitter.com/developer_tariq)
- LinkedIn: [@developer_tariq](https://www.linkedin.com/in/developer-tariq/)

👤 **Newton Alumasa**

- [Github](https://github.com/altontonn/)
- [Twitter](https://twitter.com/AlumasaNewton)
- [Linkedin](https://www.linkedin.com/in/newton-alumasa/)

(back to top)

## 🔭 Future Features

- [ ] **Optimized Database**
- [ ] **Better UI Experience**

(back to top)

## 🤝 Contributing

Contributions, issues, and feature requests are welcome!

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

(back to top)

## ⭐️ Show your support

If you like this project, please consider giving it a star.

(back to top)

## 🙏 Acknowledgments

- I would like to thank all code reviewers for making this project better.

(back to top)

## 📝 License

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

(back to top)