Note: This repo contains code for the backend of the site, frontend
Type is a full-stack web application for testing your typing speed and accuracy. With an intuitive and minimalistic interface, Type offers a natural typing experience, providing real-time feedback on your typing speed and accuracy. The application includes an account system for saving your typing speed history and user-configurable features such as themes.
src
|-- constants.ts
|-- data-source.ts
|-- entities
| |-- test.ts
| |-- user.ts
|-- index.ts
|-- migrations
| |-- 1684564075219-migration.ts
|-- resolvers
| |-- test.ts
| |-- user.ts
|-- types.ts
|-- utils
| |-- InputTypes.ts
| |-- objectTypes.ts
| |-- validate.ts
.env.example
.env
.dockerignore
.gitignore
Dockerfile
README.md
docker-compose.yml
package-lock.json
package.json
tsconfig.json
If you want to test the site locally follow these steps:
Frontend:
- Fork the repository to your GitHub account.
- Git clone the repo
- Setup a new project on Firebase
- Enable authentication in Firebase
- Enable Email/Password provider
- Create a
.env.local
file - Copy the variables from
.env.example
file onto.env.local
file - Copy Firebase credentials onto the corresponding values in the
.env.local
file - Set the backend PORT of your choice in .env.local
NEXT_PUBLIC_BACKEND_URL
and incodegen.ts
or stick with the default PORT4000
- Run
npm install
- You have successfully setup the Frontend
Backend
- Fork the repository to your GitHub account.
- Git clone the repo
- Create a
.env
file - Copy the variables from
.env.example
file onto .env file - Set the backend PORT of your choice in .env PORT or stick with the default PORT
4000
- Setup PostgreSQL in your machine
- Import migration:
migration1684564075219
intosrc/data-source.ts
add it tomigrations
- Run
npm run migration:run
this will setup the tables in postgres - Run
npm install
- You have successfully setup the Backend
Type is built using a range of modern web technologies, including:
- React.js
- Next.js
- TypeScript
- Redux
- Apollo-Graphql
- Firebase
- Node.js
- Express.js
- GraphQL
- URQL
- TypeORM
- PostgreSQL
- Docker
If you would like to contribute to Type, you can follow these steps:
- Fork the repository to your GitHub account.
- Create a new branch for your changes.
- Make your changes and test them locally.
- Push your changes to your forked repository.
- Create a pull request with a detailed description of your changes and why they are necessary.