Skip to content

A Campus focused mobile application built on React Native, Express, Node.js and Prisma. Hosted using AWS S3, Cloudfront, Elastic Beanstalk and CodeBuilds

License

Notifications You must be signed in to change notification settings

AarshShah9/CampusBuddy

Repository files navigation

TypeScript Badge Node.js Badge React Badge React Query Badge Expo Badge Express Badge Prisma Badge MySQL Badge Amazon Web Services Badge Amazon EC2 Badge Amazon S3 Badge Amazon RDS Badge

CampusBuddy

This repo houses the CampusBuddy Tech Start project. We're aiming to build an application that streamlines campus engagement in many different ways. Keep an eye out for our MVP!

About the Product

Final Showcase (1)_compressed-14 Final Showcase (1)_compressed-11 Final Showcase (1)_compressed-10 Final Showcase (1)_compressed-09 Final Showcase (1)_compressed-12 Final Showcase (1)_compressed-07 Final Showcase (1)_compressed-18

Contributors

  • Aarsh Shah (Project Manager/ Technical Lead)
  • Yang Liu (Business Strategist)
  • Rafi (UI Designer)
  • James Robert (Front-end Developer)
  • Johnny Tran (Front-end/ UI Developer)
  • Ajaypal Sallh (Front-end/ UI Developer)
  • Noman Sanjari (Backend Developer)
  • JC Pretorius (Backend Developer)
  • Stalin D'Cunha (Backend Developer)

Timeline/ Roadmap

  • Ideation/ Tech Mapping
  • Market Research/ Empathy Mapping
  • UI Set-up
  • Development
  • Testing
  • Production Release

Expo Tips

  • If you can't see the QR code in the terminal, simply press 'c'.

Setup

Accounts

  1. Create an account.
  2. Go to the dashboard and copy the auth token from https://dashboard.ngrok.com/get-started/your-authtoken.
  3. Also make a custom domain from https://dashboard.ngrok.com/cloud-edge/domains
  4. now go set these in the environment variables in the .env file as NGROK_AUTHTOKEN and URL respectively.
  5. Also set the custom domain in the frontend .env file as URL.

Installations

npm install -g expo-cli

USER NOTES

Windows

  • Should simply be able to run the entire application
./start.sh

Linux/ Mac OS (UNIX) The same command as windows should still work as separate scripts are used depending on the OS however you will have to give execution permissions to the following scripts:

  • start.sh
  • /scripts/install.sh

To do this you will have to do the following on all of the commands.

  1. Ensure you are in the working directory of the script. For instance, you may have to run cd scripts for all of the scripts that are in the folder
  2. Run chmod a+x <script-name>. This essentially changes the permissions to add execution instructions for all users. 'a' = all, '+' = add, x = execution.
  3. Then you can run the start script to start the application (make sure you are again in the working directory). ./start.sh

Database

Useful Prisma Commands

$ npx prisma generate // reflect model chages locally (for nodejs, backend, ORM)
$ npx prisma db push // push model changes to remote db instance
$ npx prisma db seed // seed the database with data
$ npx prisma studio // open the prisma studio GUI to view the database

Running the database locally

$ cd backend
$ docker-compose up -d
  • Set your .env file to the following:
DATABASE_URL=mysql://exampleuser:examplepassword@localhost:3307/exampledb
  • Then the subsequent prisma commands can be run to reflect changes locally and push changes to the docker db instance (see above).

IDE's

  • JetBrain's Webstorm
  • VSCode

Code Formatting

The project uses a common Prettier config file to maintain consistent code formatting. Install the Prettier extension and configure your IDE to use Prettier as your default code formatter and set it to format on save.

  • Please use // prettier-ignore to ignore Prettier formatting for all styled-components code.

Git

  • To streamline new branch creation you can use this command to automatically set up an upstream
$ git config --global push.default current
  • Naming Convention: Please use the following naming convention for branches:
<your name>/<feature-ticket-number/name>
  • Common git commands:
$ git checkout -b <branch-name> # Creates a new branch and switches to it
$ git add . # Adds all file changes and tracks files
$ git commit -am "<commit-message>" # Adds all file changes and commits them (non-tracked files will not be included)
$ git merge origin main # please run this before making a PR and resolve any merge conflicts.

Development Testing:

  • Download the Expo app on your phone
  • Run the following command in the project directory
npm run start
  • Then scan the QR code with your phone camera
  • The app should open up on your phone

Google Maps API

iOS Appstore EAS Commands

eas secret:push --scope project --env-file ./.env

eas build --platform ios
eas submit -p ios --latest

About

A Campus focused mobile application built on React Native, Express, Node.js and Prisma. Hosted using AWS S3, Cloudfront, Elastic Beanstalk and CodeBuilds

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages