jollopre / carpanta Goto Github PK
View Code? Open in Web Editor NEWA web application for hairdressers
License: MIT License
A web application for hairdressers
License: MIT License
Right now, for simplicity, this rake is only provisioning the following:
We would like to be able to create every resource defined in the JSON file
A new environment for testing is crucial. That involves:
have an interface to select Task, date and price for a session
We would like to have some minimal data that is always loaded. These data will consist of:
Any time the application is launched for test
or development
purposes, the seed must happen automatically
We would like to present the content for dates and currency based on the preferred language requested by the browser. For that, we will need to read the header Accept-Language
(e.g. https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language) and send the content accordingly. There is at least one place to change that behaviour:
We have seen that bundle install runs several times when the image is build for test.
We would like to introduce oauth2 mechanism to protect every incoming request.
We can use bundler-audit (e.g. https://github.com/rubysec/bundler-audit) to delegate those check and mark as failed a CI run.
We need a view to display the details for an appointment.
We need to make sure that every view is properly rendered across devices from any form (small, medium, large) and for that we would need to:
A new rake task named generate:migration
is needed in order to reduce the burden of copying/pasting a migration skeleton. This task should:
DateTime.current.strftime('%Y%m%d%H%M%S')
.NOTE: The railties gem might help to build this feature (e.g. https://github.com/rails/rails/tree/master/railties)
There are two views that allow users to introduce data through forms, when the request does not produce a successful output, we are returning 422 which is meaningless for the end user.
We would like to render the form again and attach any error as close as possible to its property. If there are errors concerning multiple properties, we should display grouped somewhere in the page. The views to be addressed are those served through the following endpoints:
We need to implement a weekly calendar for appointments, starting at 06:00 and finishing 22:00. The calendar should have the following functionalities:
We would like to introduce the practices from DDD (Domain Driven Design) to drive Carpanta application. For that, we need to make sure that all the domain class/modules are isolated from boundaries such as Application (e.g. Sinatra) and Infrastructure.
We need an interface that permits creating customers by introducing:
as well as listing every customer in the system
We would like to have an automatic deploy for carpanta. For that will be needed:
The price for a session is stored in cents, however we would like to present the price with the adequate currency format. For that, we would need to:
When a session form is presented, the UI should set the price based on the task selected.
DoD
Update README file to reflect the current status of the project
When we deploy into Aws carpanta. We create the following resources:
In order to retrieve the public IP behind the task running in the cluster, we have to perform 3 requests (in strict order):
aws-cli ecs list-tasks --cluster <cluster_arn>
)aws-cli ecs describe-tasks --cluster --cluster <cluster_arn> --tasks <task_arn>
). This permits obtaining the ENI (Elastic Network Interface) id.aws-cli ec2 describe-network-interfaces --network-interface-ids <eni_id>
). This contains the public IP behind the Elastic Network interface attached to the running task.Once we have obtained the Public IP, we should log into the output the IP in order to reduce the necessity of going to the AWS panel.
There are three properties that are hardcoded in infra/production.json
which prevents any other usage apart from my AWS user account. The properties are:
We would to replace these hardcoded values with environment variables instead.
More details at: GHSA-vr8q-g5c7-m54m
We would like to be able to create customers. A customer should have the following info:
The email is the only required info and it must be unique across all the customers stored.
Deploy gem uses monads as an alternative to control flow of the program. Right now, if an exception occurs while executing methods from Aws::ECS::Client, we don't wrap it up with a result monad. This means, the program execution halts if any exception is raised.
We would like to control any exception raised within the client, an result result monad instead.
We need to offer the functionality of creating an appointment within a weekly calendar.
We would like to introduce a search mechanism that initially looks for customers given a surname or partial surname passed.
Explore the addition of standard gem for forcing ruby style across the project.
There are several files for which there is no need to be copied in the docker image created. Please, refer to https://docs.docker.com/engine/reference/builder/#dockerignore-file to better understand how to tackle this issue.
We would like to have a view that displays the gross income for different time scales:
Note, this story does not include getting summary for a particular date inputted
More details at GHSA-2p68-f74v-9wc6
display all the tasks applied for a customer organised in descending order of session date
The views from Carpanta do not have any CSS styling yet. We would like to:
A customer attending to a salon wants to receive tasks performed by a hairdresser. We would like to:
We need to apply a set of color to display the different components allocated through the views. There are at least two colors that have to be present:
We would like to charge for an appointment made. The action will create a payment in the system with the following properties:
Right now, when a task_definition is registered (e.g. https://github.com/jollopre/carpanta/blob/master/infra/deploy/lib/deploy/commands/register_task_definition.rb#L18), we don't setup a concrete retention period for its logs.
We would like these logs to have expiration setup in order to prevent unexpected billing costs
We would like to have logs in place for:
Each environment running Carpanta should have a different file under log (e.g. test.log, development.log and production.log)
Deploy gem is located under infra/deploy and contains a battery of specs that can be executed through make test
.
We would like to integrate this command in the current travis configuration set up for the project
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.