Giter VIP home page Giter VIP logo

ticman's Introduction

TIC Manager (ticman)

ticman is a CRUD terminal app. It's the first semester's final project for our Software Engineering undergrad. We avoided several useful features of Python because we hadn't seen them in class yet, though we broke this rule in four places, namely in making the program take a --color flag to enable colored output, a --cargar flag to load seats from files, in using regexes, and in handling exceptions.

What does it do?

As was said, it's a pretty standard CRUD app. You can create seat reservations for a flight, you can update them, delete them, view the seating map, and whatnot. However, no data is persisted.

Self-imposed constraints

  • Programming in Spanish (even for stuff that isn't user-facing)
  • No third-party libraries
  • No classes
  • No built-in dictionaries
  • No type hints
  • No features from Python 3.9 onwards--you must be able to run it with Python 3.8
  • The project should be portable; it should run the same in cutting-edge terminal emulators in Linux and the Windows command prompt

On not using built-in dictionaries

This proved to be our most pervasive constraint. We wrote four trivial functions to help us treat lists of two-valued tuples as dictionaries, which we termed "pseudo-maps," and then built abstractions on top of them. Here's what using a pseudo-map looks like:

pmapa = mapa.nuevo((1, "one"), (2, "two"), (3, "three"))

mapa.actualizar(pmapa, (4, "four"))  # adds the key-value pair to the pseudo-map
mapa.actualizar(pmapa, (2, "dos"))  # this modifies the existing key-value pair

print(mapa.obtener(pmapa, 2))  # "dos"
print(mapa.obtener(pmapa, 5))  # None

What does TIC mean?

Transporte Intergaláctico Cajeme, which is Spanish for "Cajeme Intergalactic Transport," the fictional company starring in the project's spec.

Running

It's pretty straightforward. Clone the repository, and at the root, run the main.py file with a Python interpreter.

Team members

  • Oscar Adrián Castán López (260318) [@oacastan]
  • Martín Zamorano Acuña (251923) [@mzacuna]

License

The MIT License. See LICENSE for more.

ticman's People

Contributors

mzacuna avatar

Stargazers

Andrés Martínez avatar

Watchers

 avatar

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.