# VMS Backend **goals to be met**: # 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/python3 -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](http://git.github.io/git-reference): despite its name it is more of a user guide. - ["Pro Git" Book](http://git-scm.com/book): by a core developer, also a thorough user guide. - [Git Documentation](http://git-scm.com/documentation): the official reference (also accessible with `git help command`) - [Think Like a Git](http://think-like-a-git.net/): 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](http://gitolite.com/gcs/): Similar to the previous link, but less in-depth and more straightforward. - [Git Immersion](http://gitimmersion.com/): learn Git by using it on carefully crafted examples of increasing complexity. - [Git from the bottom up](http://ftp.newartisans.com/pub/git.from.bottom.up.pdf): A book to learn git by first understanding the simplicity and beauty of its internals. - [Git Magic](http://www-cs-students.stanford.edu/~blynn/gitmagic/): 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](http://stackoverflow.com/questions/tagged/git): comprehensive coverage of advanced matters. - [Top 10 Git Tutorials for Beginners](http://sixrevisions.com/resources/git-tutorials-beginners/): A list of tutorials and resources. Contains another list of far more than 10 sites at the end.