Towntaste is a mobile application designed to helping users discover and share the best local food experiences in their town. This project focuses on creating a secure and user-friendly platform for exploring restaurants and food spots.
- User Authentication
- User login
- Account creation
- Password reset via email token
- Login attempt limits
- Data Validation
- Input validation for secure and accurate data entry
Screens
- Home Page with restaurant lists
- Profile Page
- Favorite Restaurants
- Favorite Foods
- Reviews
- Coupons
- Settings Page
User Authentication Improvement
- OAuth
- Two-factor authentication
- Password reset via SMS
- Frontend: React Native, NativeWind (CSS)
- Backend: NodeJS
- Database: PostgreSQL
- Languages: TypeScript
- Other Libraries:
- Formik for form handling
- Yup for validation
- Redux for state management
- Expo for development and deployment
- Node.js
- Expo CLI
- PostgreSQL
-
Clone the repository:
git clone https://github.com/your-username/towntaste.git cd towntaste
-
Install dependencies:
npm install
-
Set up environment variables: Create a .env file in the root directory and add the following:
DATABASE_URL=your-database-url JWT_SECRET=your-jwt-secret EMAIL_SERVICE_API_KEY=your-email-service-api-key
-
Start the development server:
expo start
.
├── frontend
│ ├── assets
│ ├── src
│ │ ├── components
│ │ ├── screens
│ │ ├── redux
│ │ ├── types
│ │ └── App.tsx
│ ├── tailwind.config.js
│ └── package.json
└── backend
├── src
│ ├── controllers
│ ├── models
│ ├── routes
│ ├── services
│ └── app.ts
├── .env
└── package.json
Contributions are welcome! Please fork the repository and use a feature branch. Pull requests are warmly welcome.
- Fork the repository
- Create your feature branch (git checkout -b feature/your-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin feature/your-feature)
- Create a new Pull Request
This project is licensed under the MIT License.