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
Confirm access to
GCP <when done: ✅>
Github
Coding refresher access
Avatars
Docker and version mgmt
Schedule of weekly calls
Schedule for trainings
First couple steps
Assets
Live demo
Unpublished app that has live DB and Auth
Creds for testing
YES VIDS v2 (recurring user):
2tommy2times
PASSEXAMPLEtes
NO VIDS (1st time user):
Cdawg
PassworHELLO55
GCP
Git repo
Coding refresher
GPT personas
Hello world dummy starter
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
Confirm access to platforms <when done: ✅>
Download Docker Desktop (to run containers/images)
Confirm proper Docker installation by logging into the Trip Tracker GCP account via the command below
Review coding refresher / high level scope
Review requirements.txt and install packages
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:
.env file for Trip Tracker
example.json file
1st project: Successfully run the codebase (or spin up a hello world with 1 CSS element) locally by executing the 'docker compose up' command
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 command to push to GCP/production:
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