- Designing a normalized database schema and defining model relationships
- Utilizing advanced routing techniques, including namespacing to organize and group like functionality together
- Utilizing advanced ActiveRecord techniques to perform complex database queries
- Consuming a public API while utilizing POROs as a way to apply OOP principles to organize code
- Setup
- Project Structure
- Application
- Future Goals
- Contributing
Little Esty Shop is a group project that simulates an e-commerce platform where merchants and admins can manage inventory and fulfill customer invoices. The app is built with Ruby on Rails and uses a PostgreSQL database to store data
The app/models
directory contains ActiveRecord model classes for the various database tables used by the app. These models define the relationships between tables and provide methods for performing complex database queries.
The app/controllers
directory contains controller classes for handling HTTP requests and rendering views. These controllers use the models to retrieve data from the database and pass it to the views.
The app/views
directory contains ERB templates for rendering HTML responses to HTTP requests. These templates are used by the controllers to generate the HTML that is sent back to the user's web browser.
The config/routes.rb
file contains the routing configuration for the app. This file defines the URLs that can be accessed by users and maps them to specific controller actions.
The app/services
directory contains PORO classes that encapsulate business logic for the app. These classes are used to consume external APIs and perform other complex operations that don't fit neatly into the models or controllers.
The spec
directory contains RSpec tests for the various components of the app. These tests ensure that the app is working as expected and catches bugs and errors before they can be deployed to production.
This diagram for the project shows the database tables and their relationships to one another:
This wireframe demostrates an example of design used in pages of the application and the CSS implemented
You can visit this application hosted on Heroku
To get started on your local machine, you'll need to have Ruby and PostgreSQL installed on your system. You can then follow these steps:
- Clone the repo to your local machine using git clone
- Install the necessary gems by running
bundle install
. - Create the PostgreSQL database by running
rails db:create
. - Run the database migrations by running
rails db:migrate
. - Seed the database with sample data by running
rails db:seed
.
You can then start the Rails server by running rails server and visiting http://localhost:3000 in your web browser.
Project Status: In Progress
- Add more functionality for admins and merchants: such as analytics, automated reporting, and user management.
- Implement user authentication and authorization
- mplement chat functionality on the site
- Implement the functionality for visitors to start adding items to their cart
- Expand the API integration
- Optimize database queries
- Improve the front-end design and user experience: While the app is functional, the user interface could be improved to make it more visually appealing and easier to navigate. Implementing responsive design would also make the app accessible to a wider range of users across different devices
These are just a few examples of potential future goals to improve the "Little Esty Shop" app. Ultimately, the direction and scope of future improvements will depend on the needs and goals of the businesses using the platform.
This application was developed by:
- Adam Bailey Most Valuable Coder (MVC)
- Dawson Timmons
- Chris Crane
- Harrison Ryan
If you'd like to contribute to Little Esty Shop, you can fork the repo and make your changes in a new branch. Once you're happy with your changes, create a pull request to merge your changes back into the main branch.
By us.