826 Boston is a nonprofit youth publishing organization where students in grades K-12 can share their stories and amplify their voices as writers.
A lot of hard work and organization is required for publishing an anthology of student works! There are a lot of steps in betwen the students first writing drafts and the final production and sale of a bound book - plus a final celebratory author signing event. There are many students, volunteers, educators, and community partners involved in this process. Code 4 Community is creating an internal administrative system to ease and organize the publishing process. Volunteers will be able to log on and see their upcoming tasks on different projects. 826 administrators will be able to create projects, delegate tasks, and track progress in real time.
- Front-end: React
- Back-end: Typescript
- Database: PostgreSQL
- Cloud provider: AWS
Clone this repo and run yarn at the root to install this project's dependencies.
You can optionally install nx globally with npm install -g nx - if you don't, you'll just need to prefix the commands below with npx (e.g. npx nx serve frontend).
To start the development server run nx serve frontend. Open your browser and navigate to http://localhost:4200/. Happy coding!
nx serve frontend
nx serve backend
nx run-many -t serve -p frontend backend
yarn db:reset.
You may need to reconnect to the database in pgadmin to see the changes
Run git submodule update --remote
This is an Nx monorepo, like all c4c reops. The main app code lives in apps/.
Organized by module, each with its own controller, service, entity, and DTO (Data Transfer Object, that defines the shape of data being sent between the client and the API or between backend classes):
anthology/,author/,story/,story-draft/,omchai/,inventory/,inventory-holding/,production-info/,users/,auth/are all modulesmigrations/— TypeORM migrationsseeds/— seed data and seed scripts (seeyarn db:resetabove)aws/— AWS S3 integration (for seeding image data of anthology book covers)interceptors/— cross-cutting request/response logic (e.g.current-user.interceptor.tsattaches the authenticated user to the request)strategies/— cross-cutting configuration logic (e.g.plural-naming.strategy.tsdefines how TypeORM derives table names from entity classes)
containers/— route-level views (e.g.auth/,people/,resources/,archived-publications/,projects-publication/)components/— shared UI componentsapi/— API client and shared DTOs - makes requests to backendhooks/— custom React hooksassets/— icons and imagesutils/— helpers (e.g.router.ts,mock-data.ts)
✨ This workspace has been generated by Nx, a Smart, fast and extensible build system. ✨
When cloning the repo, make sure to add the --recurse-modules flag to also clone the component library submodule (e.g. git clone --recurse-submodules https://github.com/Code-4-Community/scaffolding.git for the scaffolding repo)