Giter VIP home page Giter VIP logo

ski-rent's Introduction

Wypożyczalnie sprzętu narciarskiego

Zadanie

User stories

  1. Przy pierwszym uruchomieniu użytkownik powinien skonfigurować system, dodając istniejący sprzęt do bazy danych
  2. Procedura wypożyczania zawiera następne kroki: a. klient zamawia sprzęt przez telefon lub internet (nieobowiązkowo) b. zostawia dokument (paszport lub dowód tożsamości) na czas pożyczki w biurze c. odbiera sprzęt i używa go przez pewny czas (może być dłużej, niż rezerwacja) d. oddaje sprzęt i opłaca fakturę e. odbiera swój dokument
  3. Jeżeli wszystkie sprzęty pewnego typu (narty, deski...) jest zarezerwowany, nikt oprócz osoby rezerwujący nie może go wypożyczyć
  4. System powinien wyświetlić tylko sprzęt dostępny do wynajęcia, a także sprzęt wynajęty i sprzęt zarezerwowany
  5. System powinien również umożliwiać reserwację sprzętu
  6. Dane dotyczące wypożyczań zachowują się w BD i nie podlegają zmianom

Schemat BD

Baza danych tworzy się przy pomocy kodu SQL z pliku db_schema.sql.

Schemat bazy danych narysowany poniżej:

DB schema

Harmonogram i realizowana technologię

Realizowana technologia: C++ w oparciu o framework Qt; baza danych MySQL.

Harmonogram pracy na dwa miesięcy:

1. projektowanie interfejsu użytkownika - 1 tydzień
2. łączenie programu z bazą danych (m. in. tworzenie architektury oraz je implementacja) - 1 tydzień
3. implementacja interfejsu zarządania sprzętem - 1 tydzień
4. implementacja interfejsu wyświetlenia rezerwacji sprzętu (m. in. architekturne rozwiązanie) - 2 tygodni
5. implementacja interfejsu wypożyczania i zwracania sprzętu - 2 tygodni
6. pakowanie programu w wersji "standalone" oraz prezentacja projektu - 1 tydzień

ski-rent's People

Contributors

shybovycha avatar

Watchers

 avatar  avatar

ski-rent's Issues

Bind equipment forms and entity

Using the architecture developed (in a previous task) bind forms to Equipment entities.
This should bind both equipment and available_equipment tables/views.

UI should include:

  • create
  • edit
  • remove
  • find

Rework MVC to Commands

MVC is really hard to support with Qt. :rage1: So, maybe it is better to rework it to Command pattern? Check this out:

In MVC, you create form in controller's action. Then, when a user fires some event, it is handled by the form itself. When an event is a something like save $ENTITY, this event is sent to a controller. And only there it is sent to a DAO (or a model).

This creates an event loop, which is hard to track. Using singleton to connect a signal to a controller is not obvious too.

And with the Command pattern: each UI element sends a signal, which is handled by its own command. Commands could be either simple, like open a window for editing $ENTITY or more complex, like save $ENTITY, close current window and refresh $ENTITY_CLASS list.

This approach is really worth trying! :wink*

Implement rent and reservation lists

This may be done reworking vertical tabs on main window to horizontal tabs. The quick search results amount may be displayed in the tab title. Quick search results should display, for example, user's reservations and rents.

Implement users management

This should allow to

  • create users
  • edit users
  • delete users

Without touching their reservations or rents.

Update rent and reservation bug

Handle the connect(win, SIGNAL(saveReservation(Reservation*)), this, SLOT(onUpdateReservationSubmitted(Reservation*))); problem - form submits only the updated entity.

Maybe emit signal from form with two arguments - old entity and the new one?

Create UI stubs

Create basic windows with all the inputs but with no implementation

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.