This website encourages college students, particularly those affected by myopia to step outside and seek a given task. The user should take a picture of the description in the prompt given and upload it before the task resets.
Here's a preview of a single user interface flow:
|
|
|
|
- Users can like each others images to decide on the best image of the day.
- At the end of the day a winner is determined and changes are reflected by the leaderboard.
- Tasks are generated daily by OpenAI GPT-4o.
- Frontend: React, TypeScript, CSS, Firebase, OpenAI
- Backend: Node.js, Express, PostgreSQL
- Database: PostgreSQL, Prisma
- Containerization: Docker
- Hosting: AWS (S3, RDS, ECR/ECS/EC2, Route 53/Certificate Manager, CloudWatch)
To run this app locally, you’ll need to have the following installed:
- Node.js (version 14 or higher)
- Docker (if running in containers)
- PostgreSQL (if not using Docker for database)
Follow these steps to get a local development copy up and running.
git clone https://github.com/emirdur/seekitnu.git
cd seekitnuFind a PostgreSQL Docker image and download it. Set up the username, password, and database name according to your preference, or use the default configuration (postgres, postgres, postgres). Make sure to update the docker-compose.yml, the backend Dockerfile, and the environment variables accordingly. Additionally, generate an .env and .env.docker file in the backend with the necessary database environment variables, ensuring the database name points to localhost in .env and the database name points to database in .env.docker.
Next, sign up for a Firebase account, as authentication is handled through this service provider. Once you've signed up, create a new project to obtain your configuration keys. Be sure to copy these keys and store them in an environment variable file within the frontend directory. Lastly, navigate to the Authentication section and enable the Email/Password sign-up method.
The way this application works is by relying on OpenAI to generate the tasks, and then falling back on a CSV file in case there's any fetch fails with the OpenAI API. Therefore, you must sign up for an OpenAI API account and add the configuration key to the .env file in the backend if you'd like to use this service. If you want to skip that part you can simply update the CSV file provided with some example tasks.
To containerize the application you can call:
npm run docker:containerize:devThis will generate and boot up the frontend, backend, and PostgreSQL images.
You can start up the website by calling:
npm run dev:frontendYou can run tests by simply calling:
npm testFollow these steps to see an explanation of what each object does. First generate the documentation:
npm run docs:generate
npm run docs:serveThen open the localhost outputted to view the documentation!



