VMS Backend
goals to be met:
-  Create and set up main database on a PostgreSQL server
-  Set up basic GET requests for Users, Vehicles, Assignments 
-  Set up POST requests for Users, Vehicles, Assignments 
-  Add token/cookie(?) authentication 
Let’s keep updating this readme.md file as we complete our tasks
How to launch
First, make sure that python is installed. Create a virtual environment (if you want to)
python -m venv venv
source /venv/bin/activate
(not necessary)
run the docker image provided to launch postgresql (telegram)
install dependencies:
pip install -r requirements.txt
open terminal in the app directory, and launch with:
uvicorn main:app --reload
OR
python3 -m uvicorn main:app --reload
Explaining the file structure
app     //main app
|-alembic      //Alembic -- database migration manager. Helps keep databases in sync and changeable (handles all SQL logic and keeps everything up-to-date) 
|   |- //All files irrelevant
|-apis          //Stores the actual API Endpoints. 
|   |-v1        //Main API endpoints
|-core          //Core project components 
|-db            //Stores database information and data
|   |-models    //Stores database models (represents SQL Tables)
|   |-repository    //Stores scripts to create, update and interact with the database
|-schemas       //Stores Pydantic data models (Kind of like db/models except for use in the API itself, not just the database. Uses for data validation and stuff)
Git Guide
- Git Reference: despite its name it is more of a user guide.
- “Pro Git” Book: by a core developer, also a thorough user guide.
- Git Documentation: the official reference (also accessible with git help command)
- Think Like a Git: a course for “advanced beginners” that know basic committing but want to make sense of the Git model. Especially useful if you come from SVN to really clear misconceptions about git.
- Git Concepts Simplified: Similar to the previous link, but less in-depth and more straightforward.
- Git Immersion: learn Git by using it on carefully crafted examples of increasing complexity.
- Git from the bottom up: A book to learn git by first understanding the simplicity and beauty of its internals.
- Git Magic: complete opposite of “Git from the bottom up” in that it treats Git as a magical gizmo you’ll learn to use without drowning into the underlying storage and history model.
- Git questions on StackOverflow: comprehensive coverage of advanced matters.
- Top 10 Git Tutorials for Beginners: A list of tutorials and resources. Contains another list of far more than 10 sites at the end.