Tech Stack Understanding the Code Base Roadmap Getting Started Architecture/Design
Doors is a mobile app for independent bands looking to measure event turnout without looking corporate. Its simple setup enables low-resource bands to easily measure the success level of their gigs based on audience turnout over time.
- NPM for package management
- TypeScript because we love typechecking
- React Native to build for all platforms
- Nativewind because scaling CSS is tedious
- Firebase for simpler authentication
- Firestore for flexibility with data and easy scaling
- Expo Go for an integrated environment and intuitive routing
- Jest to create a comprehensive testing suite
doors/
├── app # special routes directory/
│ ├── (auth) # authentication route
│ ├── (tabs) # home screens route
│ └── (user) # user settings route/
│ └── managebands # managing bands route
├── assets # static assets/
│ └── icons # app icons
└── src # main app logic/
├── components # custom react native components/
│ ├── buttons # custom buttons
│ ├── modals # custom modals
│ └── screens # all the different screens
├── configs # app configurations
├── contexts # custom react contexts
├── services # business logic
└── types # custom TypeScript types
The diagram above explains the file structure of the project. The get a better understanding of the codebase you can read the code. There are helpful comments and files peppered throughout the project.
Doors is currently still under construction. My goal is to achieve an MVP by mid May or early June before deploying to each platforms respective app store. To get a sense of the vision for the MVP, please take a look at the design files below
Follow these steps to set up Doors locally. Googling is encouraged if you get stuck on any step, or feel free to reach out to me directly!
- Create a new Firebase project
- Install Node.js v20+
- Install NPM v10+
- Mobile device with Expo Go app installed
After forking this repository, clone your fork and move into the newly cloned directory.
git clone FORKED_REPO_URL
cd cloned_repo
Create a new file called .env
in the root directory. Copy all the contents inside .env_example
and paste them into this new .env
file. Finally, replace the empty credentials with the credentials found in the "Project settings" page in your Firebase console. Then...
Install dependencies
npm install
Then run Expo Go to test in development.
npm run start
Follow the instructions in your terminal to open Expo Go. If you are having trouble opening the app with npm run start
try npm run tunnel
.
Though I started Doors as a solo project, community contributions are welcome! Check out the GitHub Issues tab to see open issues and feel free to work on any! Please make sure to follow the coding style and put any new files where they belong (see file structure above). Make your changes on a new branch in your fork and when you're ready, open a pull request.
This README.md was drafted using a template from makeread.me