top of page
Writer's pictureRay Christian

How we onboarded devs at Psoirée

Developer Onboarding Guide: 

Onboarding and unblocking new developers  

RC and EH — 1/25/24



Table of contents

  • Goals

  • Overview

  • Agenda

  • Assets

  • Tech Stack

  • Version management

  • First steps

  • Conclusion and 90-day plan



Goals

  • Get PRODUCT to 100 MAUs

  • Spin up <<NAME>> and align early contributions towards enhancing the user experience of the <<PRODUCT>>, with a focus on achieving specific project goals



Overview

The Trip Tracker supports psychedelic explorers with large dose work. It’s intended to help users track their progress and personal evolution through a simulated video chat experience that is prompted by an AI avatar. Users share their hopes and fears about upcoming trip experiences, then, after their psychedelic trip, they discuss and integrate the experience into their lives. Each video chat is recorded and saved in the user’s private video library, allowing the users to explore their evolution over time. There is no real-time communication, but that may come in the longer term roadmap.


The value proposition is enhanced personal growth and transformation. Users are able to speak candidly in a safe setting, in response to questions posed by the AI avatar. Those video-responses then offer a before-and-after video series of the user’s psychedelic journey. The structured introspection enables users to understand both their psychedelic experiences, and their overall personal evolution. The cumulative responses become a psychedelic diary.



Agenda

  1. Confirm access to 

  2. GCP <when done: ✅>

  3. Github 

  4. Coding refresher access 

  5. Avatars 

  6. Docker and version mgmt 

  7. Schedule of weekly calls 

  8. Schedule for trainings 

  9. First couple steps 



Assets

  1. Live demo

  2. www.triptracker.me

  3. Unpublished app that has live DB and Auth

  4. https://trip-tracker-397316.uc.r.appspot.com/

  5. Creds for testing

  6. YES VIDS v2 (recurring user):

  7. 2tommy2times

  8. PASSEXAMPLEtes

  9. name@gmail.com

  10. NO VIDS (1st time user):

  11. Cdawg

  12. PassworHELLO55

  13. name1@gmail.com




Tech Stack

  • Backend: Python and Django, providing the application logic and server-side rendering. 

  • Frontend: Javascript, with bootstrap and Vue.js CDNs

  • Server and WSGI: WSGI server, with synchronous communication

  • Environment Isolation: Pyenv for virtual environments

  • Containerization: Docker and docker compose

  • Cloud servers: Deployed to Google Cloud Platform’s (GCP) “serverless” Google App Engine (GAE)

  • Domain: www.triptracker.me is purchased through GoDaddy, DNS servers are pointed, and a rough MVP demo is live. An alternate codebase contains a more full-featured product that is scheduled to be customer-ready and utilizes www.triptracker.me

  • Database: a relational PostgreSQL database, via GCP, is synced to the Django app. CloudProxy is used for local docker compose up, and Google Secret Manager for environment variables

  • Auth: Login, registration, and password reset are set up using Django libraries (locally and in production)




Version management: Feature Branch Workflow


Objective

To maintain a stable main branch while enabling continuous development and frequent feature integration.


Definitions

Main Branch: The source of truth. It reflects the production-ready state of the code.

Feature Branch: A temporary branch created from the main branch for developing features, fixes, or enhancements.


Workflow Steps

1. Initialize: Clone the main repository to your local machine.

2. Branch Out: Before starting work on a new feature, create a new branch off the main branch. Name it appropriately (feature/<feature_name>).


    ```

   

 git checkout main git pull origin main git checkout -b feature/<feature_name>

    ```


3. Develop: Make your changes in the feature branch. Commit regularly with clear, descriptive commit messages.


    ```

   

 git add . git commit -m "Descriptive message about the change"

    ```


4. Sync: Regularly push your branch to the remote repository and pull the latest changes from the main branch into your feature branch to stay updated.


    ```

 git push origin feature/<feature_name> git pull origin main

    ```


5. Review: Once the feature is complete and tested, push the final changes and create a pull request from your feature branch to the main branch.


6. Code Review: Have team members review the pull request for quality, style, and functionality. During the code review process, actively engage in discussions on your pull request to address feedback and clarify your decisions


7. Merge: After approval, merge the pull request into the main branch. Delete the feature branch from the remote repository if it's no longer needed.


8. Deploy: Changes in the main branch can now be deployed to production as needed.


Best Practices

  • Keep Branches Short-lived: Merge back into the main branch often to minimize merge conflicts and integration issues.

  • Regularly Pull From Main: Ensure your feature branch is up-to-date with the main branch.

  • Descriptive Names and Commit Messages: Clearly name your feature branches and commits for easy understanding and tracking.



First steps

  1. Confirm access to platforms <when done: ✅>

  2. Download Docker Desktop (to run containers/images)  

  3. Confirm proper Docker installation by logging into the Trip Tracker GCP account via the command below

  4. Review coding refresher / high level scope  

  5. Review requirements.txt and install packages 

  6. Ensure to securely add the confidential files listed below to your local codebase. These files contain sensitive information essential to our project's security and integrity and must not be shared. Add the following files to your local codebase:

  7. .env file for Trip Tracker

  8. example.json file

  9. 1st project: Successfully run the codebase (or spin up a hello world with 1 CSS element) locally by executing the 'docker compose up' command

  10. 2nd project: <variable depending on hire>



  • Docker command to login to gcloud services via Docker (this should be first step as you need to authenticate yourself in order to access GCP goodies (bucket, config files, etc.):docker-compose -f docker-compose-deploy.yml run --rm gcloud gcloud auth login


  • Docker command to load server/client in local environment:

docker-compose up


docker-compose -f docker-compose-deploy.yml run --rm gcloud gcloud app deploy --project trip-tracker-397316



Conclusion and 90-day plan

Notify your team lead once your initial steps are completed, and begin crafting your 90-day onboarding plan.

Comments


bottom of page